計算機圖形學一:數學基礎 Transformation&Homogeneous

本章快速瀏覽計算機圖形學相關的數學知識,包裹:

  1. 向量 Vector

  2. 矩陣 Matrix

  3. 基礎變換矩陣 Transformation Matrices

  4. 齊次坐標 Homogeneous coordinates

第一章 數學基礎

需要掌握的數學基礎:

  1. Linear algebra(重點)

  2. calculus

  3. 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