點和向量的平移


對一個點或者向量進行旋轉的時候,做法是讓這個點(或向量,為了敘述方便,以下只談論點的情況,向量的情況也是一樣的),乘以一個矩陣M,根據之前的知識(參考上一篇blog: https://www.cnblogs.com/heben/p/9182090.html),矩陣M是一個3X3的方陣。

 

於是點P經過旋轉之后,新點P'的坐標計算公式如下:

然而這只是旋轉。要讓P點能夠平移,先要思考什么是平移,其實平移就是對P點的每一個坐標加上一個數字,所以帶上平移的功能之后,新點P'的坐標應該是下面這樣:

 

 為了將Tx的信息能夠存入M矩陣,scratchapixel介紹的方式是,為M矩陣新增一行,將Tx存儲為M30,將Ty存儲為M31,將Tz存儲為M32

 於是P'坐標的計算方式就變成:

 這時M已經成為了一個4X3矩陣,為了滿足矩陣的乘法,顯然P點也需要改寫,寫成P(x, y ,z, 1)這樣的形式。不過在實際編碼中,並不會真的給坐標加上一個第四維度的1,而只是假裝那里有個1。點P形式為(x, y, z ,1)的時候,我們稱這樣的點為同質點(homogeneous point)

 最后,CG中常用的M矩陣式4X4的。但這需要了解更多的知識,現在只需要知道,矩陣M由4x3變成4x4,就是新增一列,大部分情況下這一列的數值是(0, 0, 0, 1)


免責聲明!

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



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