矩阵(二)

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

矩阵定义旋转

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数学基础:图形与游戏开发》这本书的内容。