Files
2024-11-07 18:15:58 +08:00

45 lines
1.4 KiB
C++

// Transform.h: interface for the CTransform class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_TRANSFORM_H__C4FA86B2_0AF5_409A_94EB_B02A1EE13E05__INCLUDED_)
#define AFX_TRANSFORM_H__C4FA86B2_0AF5_409A_94EB_B02A1EE13E05__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "P3.h"
class CTransform//三维变换
{
public:
CTransform();
virtual ~CTransform();
void SetMat(CP3 *,int);
void Identity();
void Translate(double,double,double);//平移变换矩阵
void Scale(double,double,double);//比例变换矩阵
void Scale(double,double,double,CP3);//相对于任意点的比例变换矩阵
void RotateX(double);//旋转变换矩阵
void RotateX(double,CP3);//相对于任意点的X旋转变换矩阵
void RotateY(double);//旋转变换矩阵
void RotateY(double,CP3);//相对于任意点的Y旋转变换矩阵
void RotateZ(double);//旋转变换矩阵
void RotateZ(double,CP3);//相对于任意点的Z旋转变换矩阵
void ReflectX();//X轴反射变换矩阵
void ReflectY();//Y轴反射变换矩阵
void ReflectZ();//Z轴反射变换矩阵
void ReflectXOY();//XOY面反射变换矩阵
void ReflectYOZ();//YOZ面反射变换矩阵
void ReflectZOX();//ZOX面反射变换矩阵
void ShearX(double,double);//X方向错切变换矩阵
void ShearY(double,double);//Y方向错切变换矩阵
void ShearZ(double,double);//Z方向错切变换矩阵
void MultiMatrix();//矩阵相乘
public:
double T[4][4];
CP3 *POld;
int num;
};
#endif // !defined(AFX_TRANSFORM_H__C4FA86B2_0AF5_409A_94EB_B02A1EE13E05__INCLUDED_)