CG中的數(shù)學--幾何部分(Geometry)

1. 矩陣(Matrix)

1.1 矩陣和笛卡爾坐標系之間的關系

理解矩陣的關鍵點在于,我們要知道,矩陣的行就代表坐標系的一個軸(axis/ base),如果我們需要變換(transform)點或者向量從一個坐標系到另一個坐標系,我們只需要將心坐標系的每個軸的坐標放入矩陣的行中即可。

  • 新坐標系的方向(orientation)由旋轉部分決定(rotation)
  • 新坐標系的大小(size)由伸縮部分決定(scale)
  • 新坐標系的位置(position)由平移矩陣決定(translation)
如圖所示:
如何去理解:

假設在 A 坐標系中有一個點 p,這時候我們將 p 繞著 z 軸旋轉,我們先不去想它在 A坐標系 中的變化,而是假設有另一個坐標系(比方說 local coordinate system),而這個 local coord system 是和點 p 鉚定的,p 怎么動,它也怎么動,所以 p 相對于 local coord system 的坐標是不變的。
一開始,A坐標系 和 local coord system 是重疊的,那么當 p 繞 A 坐標系的 z 軸旋轉時, local coord system 做同樣的旋轉,而這個旋轉矩陣每一行就分別對應了這個 local coord system 在 A 坐標系中的xyz軸。

1.2 正交矩陣(Orthogonal Matrix)

行和列正交的矩陣就是正交矩陣

特性:

轉置矩陣(transpose)等于逆矩陣(inverse)


1.3 仿射變換(Affine Transformation)

所謂仿射變換,歸根結底就是在變換過程中仍然能夠保留直線。
因此,translation,rotation,shearing 都是仿射變換。
和仿射變換對應的是投射變換(projective transformation),透視投影(perspective projection)就是投射變換中的一種,很明顯,這種變換不能保留直線的平行關系。

2. 點和矩陣的變換

2.1 齊次坐標系(Homogeneous Coordinates)

點的齊次坐標系是將三維坐標加上一個 w=1 作為第四項,得到[x, y, z, 1]
因此,變換矩陣需要加上[0,0,0,1]的第四列,但是,這不是唯一情況,因為在投影矩陣,錯切矩陣中,第四列有可能是請他情況,最后得到變換后點的 w 也不再是1,這時,我們就需要將這個點進行透視分割(perspective divide),即,四項都除以w。

2.2 行/列主序向量(Row/Column Major Vector)

row major vector:


column major vector:

還有兩個術語需要注意下,左乘/前乘(left/ pre-multiplication)和右乘/后乘(right/ post-multiplication)是指向量相對于矩陣的位置
顯然可見,如果是 row major vector,那么就是 left/ pre multiplication,如果是 column major vector,那么就是 right/ post multiplication。

關于這一點,Maya文檔里面是使用錯了的,千萬注意。

2.3 行/列主序矩陣(Row/Column Major Matrix)

從數(shù)學角度上來講,這兩種矩陣并無差別,只是在表示時候 row major matrix 是 m[row][col],另一個是 m[col][row]. 他們的差別主要體現(xiàn)在計算機計算性能上.
row major matrix 存儲時是按照行存儲數(shù)據(jù), 而 column major matrix 存儲時是按照列順序存儲.
計算機cpu在訪問一個值時,會將其后面的幾個值也放在cache里面,以[3*1]*[3*3]這樣一個 pre-multiplication 為例,每一次計算新向量中一個成員時是需要訪問矩陣一個列, 采用 column major matrix 能顯著優(yōu)化性能.

2.4 創(chuàng)建一個方向矩陣/局部坐標系(Orientation Matrix/ Local Coordinate System)

我們通常也會稱之為 TNB 坐標系,即 tangent bitangent normal,無論我們采用左手坐標系還是右手坐標系去將他們標注為 xyz 軸,只需要記住 normal 叉乘 tagent = bitangent。
TNB用世界坐標系表示的三個軸可以組成一個矩陣,這個矩陣乘以TNB坐標系內一個點的坐標就可以得到該點世界坐標。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容