在计算机几何图形中,矩阵的作用可以定义旋转,平移,缩放,投影,镜像等等,在三维设计软件中,对于物体的操作尤其重要。本篇需要用到向量的点乘和叉乘相关知识点和矩阵的基本概念,如果对向量和矩阵不太熟悉,可以先理解向量和矩阵的基本知识再来看本篇。
矩阵定义旋转
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数学基础:图形与游戏开发》这本书的内容。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。