Download presentation
Presentation is loading. Please wait.
1
幾何變換 Geometry Transformations
靜宜大學資管系 蔡奇偉 副教授
2
大綱 座標系統 幾何變換 座標系統變換 Projection (投影) 攝相系統
3
座標系統 物件座標系統(Object Coordinate System) 世界座標系統(World Coordinate System)
攝相座標系統(Viewing Coordinate System) 由照相機位置和取鏡方向所決定的座標系統。
4
view coordinate system object coordinate system world coordinate system z y x
5
依照座標軸的方向,座標系統可分為右手和左手兩類(如右圖所示)。 3D 繪圖通常使用右手座標系統。
OpenGL 採用左上圖所示的右手座標系統。
6
幾何變換 齊次座標 平移 旋轉 放大與縮小 合成變換
7
齊次座標 為了簡化矩陣的操作,電腦圖學常使用齊次座標系統(homogenous coordinate system)。齊次座標系統用 n+1 維的座標來表示 n 度空間的點。譬如:三維座標點 (x, y, z) 在齊次座標系統中變成 (hx, hy, hz, h) ,其中第四個座標值 h 稱為齊次座標,它的值只要不等於 0 即可。反過來說,齊次座標系統上的點 (x, y, z, w) 代表三度空間的點 (x/w, y/w, z/w) 。
8
平移(Translation) dy dx dz x y z v v’ D
9
旋轉(Rotation) 我們先看看平面的情形。假定 (x,y) 逆時針旋轉 角度到 (x',y'),如右圖所示。 令
我們先看看平面的情形。假定 (x,y) 逆時針旋轉 角度到 (x',y'),如右圖所示。 令 並用極座標與三角公式,我們得到底下的結果:
10
前一頁的轉換公式可以寫成底下的矩陣形式:
11
另解:令 Q 是 P 逆時針旋轉 90 度所得的向量。由於 P 和 Q 垂直,所以 P’ 可以寫成以下的線性組合: P’ = aP + bQ
所以,a = cos(q)。 x y P = (x,y) Q = (-y,x) q P’ 所以,b = sin(q)。
12
我們得到: 。所以 上面的式子可以寫成底下的矩陣形式:
13
Positive Rotation in 3D ? Sit at + end of given axis Look at Origin
接下來我們列出其他三度空間的旋轉公式。 Positive Rotation in 3D ? Sit at + end of given axis Look at Origin CC (Counter Clockwise) Rotation is Positive direction
14
繞著 z 軸旋轉 角度: q (x,y,z) (x’,y’,z) z x y
15
繞著 x 軸旋轉 角度: z (x,y’,z’) (x,y,z) q y x
16
註:x-z-y 是左手座標系統,換成右手座標系統時, 變為 -。
q (x,y,z) (x’,y,z’) z x y 繞著 y 軸旋轉 角度: 註:x-z-y 是左手座標系統,換成右手座標系統時, 變為 -。
17
假定 A 是任意一個單位向量。P 點繞著方向為 A 的軸線旋轉 角度得到 P’點。
把向量 P 分解成右圖所示的垂直於 A 和投影至 A 的兩個部分。繞 A 旋轉時,只影響垂直的分向量。
18
因此,
19
把前一頁最後的公式整理之後,我們得到以下的旋轉矩陣:
其中,
20
放大與縮小 z sx: x 方向的放大倍率 sy: y 方向的放大倍率 sz: z 方向的放大倍率 x y (x’,y’,z’)
21
合成變換 假定 M 和 N 是兩個幾何變換矩陣。令 T = MN,則 T 稱為 M 和 N 的合成變換矩陣,而且對任意向量 x,下列的等式成立: 矩陣的乘法不具有交換性,即 MN NM,所以我們必須注意合成變換的順序。
22
範例 我們用底下的範例來介紹如何用前面的基本變換來組合成複雜的變換。我們將推導出把左下圖三點轉換成右下圖位置的幾何變換矩陣。 x y z x
P1 P2 P3 x y z P1 P2 P3 x y z
23
我們把變換拆解成底下的四個基本步驟: 把 P1 平移至原點。 對 y 軸旋轉使得 P1 和 P2 落在 y-z 平面上。
對 x 軸旋轉使得 P1 和 P2 落在 z 軸上。 對 z 軸旋轉使得 P1 和 P3 落在 y-z 平面上。 P1 P2 P3 x y z P1 P2 P3 x y z
24
P’1 P’2 P’3 x y z 1. 把 P1 平移至原點
25
2. 對 y 軸旋轉使得 P1 和 P2 落在 y-z 平面上 x y z
q D1 假定 P'1P'2P'3 與 x-y 平面的夾角是 度(如右圖所示)。則旋轉的角度是 –(p/2 – ) = – p/2 所以,
26
3. 對 x 軸旋轉使得 P1 和 P2 落在 z 軸上。 x y z D2 f 假定 P''1P''2P''3 與 x-z 平面的夾角是 度(如右圖所示)。則旋轉的角度是 。 所以,
27
4. 對 z 軸旋轉使得 P1 和 P3 落在 y-z 平面上 假定 P'''1P'''2P'''3 與 y-z 平面的夾角是 度(如右圖所示)。則旋轉的角度是 。 所以, x y z a D3
28
把前面四個基本變換合起來,我們得到底下的合成變換 M:
而且變換之後的點座標是:
29
座標系統變換 座標系統平移 座標軸繞 z 軸旋轉 角 座標軸繞 x 軸旋轉 角 座標軸繞 y 軸旋轉 角
右手座標系統換成左手座標系統
30
座標系統平移 zv 假定原點移到 (tx, ty, tz),而座標軸方向不變。 zw xv yv xw yw 舊座標:xw-yw-zw
(tx,ty,tz)w 舊座標:xw-yw-zw 新座標:xv-yv-zv 假定原點移到 (tx, ty, tz),而座標軸方向不變。
31
座標軸繞 z 軸旋轉 角 zw zv xw yw xv yv q
32
座標軸繞 x 軸旋轉 角 zw xw xv yw yv q zv
33
座標軸繞 y 軸旋轉 角 zw xw yw yv yv q xv
34
右手座標系統換成左手座標系統 zw yw yv xw xv zv
35
【範例】 zw 軸、 zv 軸、 和 yv 軸共面 zw xw yw zv yv xv q f m
36
1. 對 z 軸繞 (p/2 +q) 角 zw zv xw yw yv xv q
37
2. 對 x 軸繞 f 角 zw xw xv yw yv f zv
38
3. 沿新 z 軸方向平移 m yv zv xv yw m zw xw
39
4. 轉換為左手座標系統: yw yv zw xw xv zv
40
把前述四個變換依序結合起來,我們得到底下的合成變換:
41
Projection (投影) 投影是將 n 維空間的物體投射至 n-1 維空間的一種轉換 (transformation)。在電腦繪圖中,我們考慮的投影是從三維空間到二維空間的投射;其目的是讓二維的螢幕能顯現三維的物體和景觀。較常用的投影是 正交投影 (orthographic projection) 透視投影 (perspective projection) 我們稱投射影像所在的平面為投影平面 (projection plane) 或觀視平面(view plane)。
42
3D object projection plane or view plane x y z
43
正交投影 (orthographic projection)
view plane yv P(xs , ys) ys P(xv , yv , zv) zv xs xv xs = xv ys = yv
45
Three orthographic projections
46
透視投影 (perspective projection)
yv xv zv P(xv , yv , zv) P(xs , ys) view plane coordinate system ys xs
47
d xv zv P(xv , yv , zv) xs looking along y-axis
48
d yv zv P(xv , yv , zv) ys looking along x-axis
51
攝相系統
52
照相機術語 a) camera body b) film size c) camera lens(鏡頭)
d) field of view(視野)
54
x y z
Similar presentations