进行三维图形绘制的第一步是物体建模,考虑到物体的运动(仿射变换),三维物体到二维平面的的投影(投影变换)和物体本身的建模(建立点表和面表),这里先进行物体的仿射变换。
通过三维仿射变换实现物体的运动,由于物体的平移变换无法通过三维矩阵实现,所以这里通过四维矩阵来实现。
#pragma once
#include "P3.h"
#define PI 3.1415926//圆周率
#include "math.h"//数学头文件
class CModelTransform3
{
public:
CModelTransform3(void);
virtual ~CModelTransform3(void);
void Identity(void);
void SetMatrix(CP3* P, int ptNumber);//设置变换点
void Translate(double tx, double ty, double tz);//平移变换
void Scale(double sx, double sy, double sz);//缩放
void Scale(double sx, double sy, double sz,CP3 p);//相对于任意点的缩放
void Scale(double s);//整体缩放
void Scale(double s, CP3 p);//相对于任意点的整体缩放
void RotateX(double beta);//绕X轴旋转
void RotateY(double beta);//绕Y轴旋转
void RotateZ(double beta);//绕Z轴旋转
void RotateX(double beta, CP3 p);//相对于任意点绕X轴旋转
void RotateY(double beta, CP3 p);//相对于任意点绕Y轴旋转
void RotateZ(double beta, CP3 p);//相对于任意点绕Z轴旋转
void ReflectX(void);//关于X轴反射变换
void ReflectY(void); //关于Y轴反射变换
void ReflectZ(void);//关于Z轴反射变换
void Refl

本文介绍三维图形绘制的基础——物体建模及变换,重点讲解三维仿射变换中的平移、缩放、旋转等操作,并提供了详细的代码实现。
仿射变换&spm=1001.2101.3001.5002&articleId=122131287&d=1&t=3&u=a07bdbc26f8d492da099fb62d280ebba)
652

被折叠的 条评论
为什么被折叠?



