什么是行矩阵什么是列矩阵
行矩阵
r11 r12 r13 0
r21 r22 r23 0
r31 r32 r33 0
tx ty tz 1
其实记住行矩阵只要记住矩阵中,表示平移的3个分量是在一行就是行矩阵。行矩阵需要用向量去前乘来完成变化,即Vector4Mat。一般为了节省矩阵存储的内存开销,我们只存储左边43的部分,默认最后一列是0 0 0 1
列矩阵
r11 r21 r31 tx
r12 r22 r32 ty
r13 r23 r33 tz
0 0 0 1
列矩阵其实就是将行矩阵的内容直接进行转置,这样平移的3个分量就是在一列了,就是列矩阵。列矩阵需要用向量去后乘来完成变化,即MatVector4。一般为了节省矩阵存储的内存开销,我们只存储上边34的部分,默认最后一行是0 0 0 1
几种常用的变换在DirectX和OpenGL中对应的矩阵,下图中左面是DirectX中的矩阵,右面是OpenGL中的矩阵。
平移变换
对于平移变换来说,如果使用DirectX,那么m41,m42,m43分别对应三个平移分量,对应下面的Tx,Ty和Tz。
绕X轴旋转
绕Y轴旋转
绕Z轴旋转
缩放变换
缩放变换矩阵,两者是一致的,因为缩放变换的变换因子都在矩阵的对角线上,所以转置矩阵等于其自身。
参考链接:
https://www.cnblogs.com/moxiaotao/p/11205082.html
https://www.cnblogs.com/graphics/archive/2012/08/02/2616017.html
https://blog.csdn.net/a497406594/article/details/102888070