在计算机几何图形中,矩阵的作用可以定义旋转,平移,缩放,投影,镜像等等,在三维设计软件中,对于物体的操作尤其重要。本篇需要用到向量的点乘和叉乘相关知识点和矩阵的基本概念,如果对向量和矩阵不太熟悉,可以先理解向量和矩阵的基本知识再来看本篇。
矩阵定义旋转
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 数学基础:图形与游戏开发》这本书的内容。