計算機圖形學一:數學基礎 Transformation&Homogeneous
本章快速瀏覽計算機圖形學相關的數學知識,包裹:
基礎變換矩陣 Transformation Matrices
齊次坐標 Homogeneous coordinates
第一章 數學基礎
需要掌握的數學基礎:
對於計算機圖形學,更多需要掌握的是線性代數的
1.1 向量 Vector
1.1.1 寫法
或者寫作 AB=B−A
1.1.2 標準化 Normalization
向量的長度(Magnitude or length)寫作 ∥a∥
單位向量
將向量標準化 $\hat{a}=\vec{a} /|\vec{a}|$
1.1.3 向量運算 Vector Operations
向量加法 Vector Addition
1.1.4 笛卡爾座標系 Cartesian Coordinates
A=(xy) AT=(x,y) ∥A∥=x2+y2 1.1.5 向量點積 Dot (scalar) Product
a⋅b=∥a∥∥b∥cosθcosθ=∥a∥∥b∥a⋅b a⋅b=b⋅aa⋅(b+c)=a⋅b+a⋅c(ka)⋅b=a⋅(kb)=ka⋅b Dot Product in Cartesian Coordinates
−ln2Da⋅b=(xaya)⋅(xbyb)=xaxb+yayb−ln3Da⋅b=xayaza⋅xbybzb=xaxb+yayb+zazb 1.1.6 向量叉積 Cross (vector) Product
∥a×b∥=∥a∥∥b∥sinϕ Cross product properties:
x×y=+z,y×x=−z,y×z=+x,z×y=−x,z×x=+y,x×z=−y. a×b=yazb−ybzazaxb−xazbxayb−yaxb a×b=A∗b=0za−ya−za0xaya−xa0xbybzb 推導過程:
a×b===(xax+yay+zaz)×(xbx+yby+zbz)xaxbx×x+xaybx×y+xazbx×z+yaxby×x+yayby×y+yazby×z+zaxbz×x+zaybz×y+zazbz×z(yazb−zayb)x+(zaxb−xazb)y+(xayb−yaxb)z. a×b=(yazb−zayb,zaxb−xazb,xayb−yaxb) 1.1.7 標準正交基和座標系
∥u∥=∥v∥=∥w∥=1u⋅v=v⋅w=u⋅w=0w=u×v (right-handed) p=(p⋅u)u+(p⋅v)v+(p⋅w)w 1.2 矩陣 Matrix
在圖形學中,矩陣可以表示為:平移、旋轉、剪切和縮放
1.2.1 定義
151364 1.2.2 矩陣乘法
a11⋮ai1⋮ar1………a1m⋮aim⋮armb11⋮bm1……b1j⋮bmj……b1c⋮bmc=p11⋮pi1⋮pr1⋯⋯⋯p1j⋮pij⋮prj⋯⋯⋯p1c⋮pic⋮prc 其中,
pij=ai1b1j+ai2b2j+⋯+aimbmj 1.2.3 矩陣性質 Properties
1.2.4 矩陣向量乘法 Matrix-Vector Multiplication
(−1001)(xy)=(−xy) (100−1)(xy)=(x−y) 1.2.5 矩陣轉置 Transpose of a Matrix
135246T=(123456) (AB)T=BTAT 1.2.6 單位矩陣和逆矩陣 Identity Matrix and Inverses
I3×3=100010001 AA−1=A−1A=I (AB)−1=B−1A−1 1.2.7 矩陣形式的向量乘法
=a⋅b=aTb(xayaza)xbybzb=(xaxb+yayb+zazb) a×b=A∗b=0za−ya−za0xaya−xa0xbybzb 1.3 基礎變換矩陣 Transformation Matrices
縮放(scale)、 翻轉(Reflection)、旋轉(Rotation)、拉伸(shear)
1.3.1 縮放矩陣 Scale Matrix
scale(sx,sy)=[sx00sy]. [sx00sy][xy]=[sxxsyy]. 1.3.2 翻轉矩陣 Reflection Matrix
reflect-x(s)=[−1001],reflect-y(s)=[100−1] x′=−xy′=y[x′y′]=[−1001][xy] 1.3.3 拉伸矩陣 Shear Matrix
shear-x(s)=[10s1],shear-y(s)=[1s01] 1.3.4 旋轉矩陣 Rotation Matrix
1.4 齊次坐標 Homogeneous coordinates
答:為了解決平移問題,因為「平移」這個操作無法在現有的一處變換矩陣中表示。詳細解釋如下:
我們想要表示下面的平移矩陣,
答案就是 齊次坐標 Homogeneous coordinates。
1.4.1 定義
在原來的座標/向量中增加多一個維度 $ w $。
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 性質
x′y′w′=100010txty1⋅xy1=x+txy+ty1 在齊次座標系中,$\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
[x′y′]=[acbd][xy]+[txty] x′y′w′=100010txty1⋅xy1 1.4.4 2D變換 2D Transformations
Scale:S(sx,sy)=sx000sy0001Rotation:R(α)=cosαsinα0−sinαcosα0001Translation:T(tx,ty)=100010txty1 1.4.5 逆變換 Inverse Transform
1.4.5 變換的分解與合成 Composition and Decomposition of Transformations
R45⋅T(1,0)=T(1,0)⋅R45 T(1,0)⋅R45xy1=100010101cos45∘sin45∘0−sin45∘cos45∘0001xy1 1.4.5.1 合成
我們可以把上面式子中的旋轉矩陣和平移矩陣合而為一,理論依據:
An(…A2(A1(x)))=An⋯A2⋅A1⋅xy1 1.4.5.2 分解
答:平移 $c$ 點到原點 $(0,0)$ ,旋轉,再平移回去。
即:$T(c)\cdot R(\alpha)\cdot T(-c)$
Reference
[1] Fundamentals of Computer Graphics 4th
[2] GAMES101 Lingqi Yan