行矩阵和列矩阵

什么是行矩阵什么是列矩阵

行矩阵

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

猜你喜欢

转载自www.cnblogs.com/xeclass/p/12695418.html