計算機圖形學一:數學基礎 Transformation&Homogeneous
本章快速瀏覽計算機圖形學相關的數學知識,包裹:
向量 Vector
矩陣 Matrix
基礎變換矩陣 Transformation Matrices
齊次坐標 Homogeneous coordinates
第一章 數學基礎
需要掌握的數學基礎:
Linear algebra(重點)
calculus
statistics
對於計算機圖形學,更多需要掌握的是線性代數的
向量(點積,叉積)
矩陣
1.1 向量 Vector
1.1.1 寫法
有長度、方向
不規定起點
1.1.2 標準化 Normalization
單位向量
長度為1的向量
將向量標準化 $\hat{a}=\vec{a} /|\vec{a}|$
用於表示向量的方向
1.1.3 向量運算 Vector Operations
向量加法 Vector Addition
幾何滿足:平行四邊形法則 & 三角形法則
代數滿足:向量各分量相加
1.1.4 笛卡爾座標系 Cartesian Coordinates
1.1.5 向量點積 Dot (scalar) Product
Dot product properties:
Dot Product in Cartesian Coordinates
點積應用
求兩個向量的夾角
找向量在另一個向量的投影
衡量兩個向量的方向的相似度
分解向量
...
1.1.6 向量叉積 Cross (vector) Product
滿足右手系
Cross product properties:
叉積:笛卡爾公式
推導過程:
1.1.7 標準正交基和座標系
對任意3個向量有
1.2 矩陣 Matrix
在圖形學中,矩陣可以表示為:平移、旋轉、剪切和縮放
1.2.1 定義
m行n列的數組
1.2.2 矩陣乘法
其中,
1.2.3 矩陣性質 Properties
沒有交換律
AB BA不相等
結合律和分配律
(AB)C = A(BC)
A(B+C) = AB + AC
(A+B)C = AC + BC
1.2.4 矩陣向量乘法 Matrix-Vector Multiplication
關於 y 軸翻轉
關於 x 軸翻轉
1.2.5 矩陣轉置 Transpose of a Matrix
交換行列(ij -> ji)
性質
1.2.6 單位矩陣和逆矩陣 Identity Matrix and Inverses
1.2.7 矩陣形式的向量乘法
點積
叉積
1.3 基礎變換矩陣 Transformation Matrices
用矩陣表示轉換
縮放(scale)、 翻轉(Reflection)、旋轉(Rotation)、拉伸(shear)
1.3.1 縮放矩陣 Scale Matrix
縮放定義為:
縮放對矩陣做了什麼?
例子:
1.3.2 翻轉矩陣 Reflection Matrix
定義:
水平翻轉
1.3.3 拉伸矩陣 Shear Matrix
定義:
例子:
1.3.4 旋轉矩陣 Rotation Matrix
默認關於原點(0,0)逆時針旋轉
1.4 齊次坐標 Homogeneous coordinates
思考:為什麼引入齊次座標?
答:為了解決平移問題,因為「平移」這個操作無法在現有的一處變換矩陣中表示。詳細解釋如下:
我們想要表示下面的平移矩陣,
如何用統一的方式表示平移和基礎變換呢?
答案就是 齊次坐標 Homogeneous coordinates。
1.4.1 定義
在原來的座標/向量中增加多一個維度 $ w $。
2D座標 = $(x,y,1)^T$
2D向量 = $(x,y,0)^T$
例子:$\left[\begin{array}{}2\3\1\end{array}\right]$是一個座標,$\left[\begin{array}{}2\3\0\end{array}\right]$是一個向向量。
1.4.2 性質
用矩陣表示變換(translations):
其中,$w$維度只允許0或1
向量 + 向量 = 向量
座標 - 座標 = 向量
座標 + 向量 = 座標
座標 + 座標 = 不合法!
在齊次座標系中,$\left(\begin{array}{}x\y\w\end{array}\right)$代表二維空間中的一個點$\left(\begin{array}{}x/w\y/w\1\end{array}\right),w\ne0$.
1.4.3 仿射映射&齊次座標 Affine map & HC
Affine map = linear map + translation
Using HC
1.4.4 2D變換 2D Transformations
1.4.5 逆變換 Inverse Transform
1.4.5 變換的分解與合成 Composition and Decomposition of Transformations
思考:先平移再縮放還是先縮放再平移?
答:先縮放再平移。
圖解:
原因是,矩陣不存在交換律。
注意,矩陣是從右算到左:
1.4.5.1 合成
我們可以把上面式子中的旋轉矩陣和平移矩陣合而為一,理論依據:
1.4.5.2 分解
思考:怎麼使一個圖像繞任意點 $c$ 旋轉呢?
答:平移 $c$ 點到原點 $(0,0)$ ,旋轉,再平移回去。
即:$T(c)\cdot R(\alpha)\cdot T(-c)$
Reference
[1] Fundamentals of Computer Graphics 4th
[2] GAMES101 Lingqi Yan