《3D Math Primer for Graphics and Game Development》讀書筆記2
上一篇得到了"矩陣等價于變換后的基向量"這一結論。
本篇只涉及兩章,但容量已足夠喝一壺了。
第8章 矩陣和線性變換
變換物體和變換坐標系是等價的,將物體變換一個量等價于將坐標系變換一個相反的量。
旋轉rotation
2D中的旋轉只有一個參數:角度θ,逆時針經常被認為是正方向。
在3D場景中,繞軸旋轉而不是點。繞軸旋轉θ°時,必須知道哪個方向被認為是正方向。在左手坐標系中用左手法則,在右手坐標系中用右手法則判定。
設n為單位向量,方向任意,旋轉角度為θ,那么相應的旋轉矩陣為:
縮放scaling
設n為平行于縮放方向的單位向量,k為縮放因子,縮放沿穿過原點且平行于n的直線(2D)或平面(3D)進行。
2D的縮放公式
3D的縮放公式
投影projection
2D中,
3D中,
鏡像reflection
2D中,
3D中,
切變shearing
切變時角度會變化,但面積和體積不變。
第9章 矩陣的更多知識
行列式determinant
上圖展示了行列式的計算方法。可以將任意一行作為主行,然后寫出行列式;也可以按列來寫,結果都是一樣的。
2×2矩陣的行列式等于其圍成的平行四邊形的有符號面積。
3×3矩陣的行列式等于以變換后的基向量為三邊的平行六面體的有符號體積。
如果行列式為零,那么該矩陣包含投影;如果行列式為負,那么該矩陣包含鏡像。
矩陣的逆
假設矩陣M有r行c列。記法M{ij}表示從M中除去第i行第j列后剩下的矩陣。稱為M的余子式。余子式是一個矩陣。
余子式的有符號行列式稱為代數余子式。
用Cij表示M的第i行第j列元素的代數余子式。代數余子式是一個標量。
可以用代數余子式求行列式。
例如4×4矩陣
矩陣M的逆記作M-1,也是一個矩陣,且滿足
M的標準伴隨矩陣記作adj M,定義為M的代數余子式矩陣的轉置矩陣。例如:
M的代數余子式矩陣:
M的標準伴隨矩陣:
M的逆矩陣:
標準伴隨矩陣提供無分支計算逆矩陣的方法。還有一種求逆矩陣的方法是高斯消元法。
正交矩陣
旋轉和鏡像矩陣是正交的。
正交矩陣的每一行代表的基向量都是單位向量,且行互相垂直。
矩陣正交化
施密特正交化:
改進的施密特正交化:
4×4齊次矩陣
4×4矩陣可以同時表示線性變換(旋轉、縮放。。。)和平移。這是使用4×4矩陣的原因之一。
仿射變換
仿射變換的基本思路是,先平移到原點,然后執行線性變換,最后反向平移回去。
文章列表