什么是行矩陣什么是列矩陣
行矩陣
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