在计算机几何图形中,矩阵的作用可以定义旋转,平移,缩放,投影,镜像等等,在三维设计软件中,对于物体的操作尤其重要。本篇需要用到向量的点乘和叉乘相关知识点和矩阵的基本概念,如果对向量和矩阵不太熟悉,可以先理解向量和矩阵的基本知识再来看本篇。

矩阵定义旋转

2D向量的旋转


3D向量的旋转

绕X轴的旋转矩阵


绕Y轴的旋转矩阵


绕Z轴的旋转矩阵

任意轴的旋转矩阵

向量的投影公式

向量绕任意轴的旋转




缩放矩阵

2D向量缩放


3D向量缩放

任意方向的缩放

2D向量的任意方向缩放



3D向量的任意方向缩放


正交投影矩阵

2D正交投影矩阵

3D正交投影矩阵

同样的道理,3D的正交投影矩阵是把三维的向量变成二维的向量。


任意方向的投影

2D任意方向投影

3D的任意方向投影

和2D矩阵的类似,3D的任意方向投影矩阵可以想象为任意方向的缩放,并且缩放因子k=0,使用3D任意方向缩放推导,3D的任意方向缩放矩阵:

镜像矩阵

2D镜像投影

3D镜像矩阵

根据3D任意方向缩放的矩阵,把k=-1即可得到3D镜像矩阵:

切变矩阵:

2D切变矩阵


3D切变矩阵




矩阵变换的组合:

根据矩阵的结合律,对于向量和多个矩阵相乘,可以先把矩阵相乘,结果成一个矩阵,再和向量相乘,从而提高效率。如:vABCD等于先把矩阵ABCD相乘,得到的一个结果矩阵M,再使用向量v和这个矩阵相乘,即:vABCD=v(ABCD)=vM,如果一个物体需要从物理坐标系转换到世界坐标系,再从世界坐标系转换到屏幕坐标系,那么先把各个坐标系转换的矩阵相乘,得到一个结果矩阵,再用物体和这个结果矩阵相乘,那么就大大的提高了效率了。

本篇参考了《3D数学基础:图形与游戏开发》这本书的内容。