行矩陣和列矩陣


什么是行矩陣什么是列矩陣

行矩陣

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM