機器人原理及控制技術(shù):第02章 齊次變換_第1頁
機器人原理及控制技術(shù):第02章 齊次變換_第2頁
機器人原理及控制技術(shù):第02章 齊次變換_第3頁
機器人原理及控制技術(shù):第02章 齊次變換_第4頁
機器人原理及控制技術(shù):第02章 齊次變換_第5頁
已閱讀5頁,還剩29頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、第二章第二章 齊次坐標變換齊次坐標變換 ChapterChapter Homogeneous Transformation Homogeneous Transformation 2.1 2.1 引言引言 2.2 2.2 點向量和平面的描述點向量和平面的描述 2.3 2.3 變換變換 2.4 2.4 平移變換平移變換 2.5 2.5 旋轉(zhuǎn)變換旋轉(zhuǎn)變換 2.6 2.6 坐標系坐標系 2.7 2.7 相對變換相對變換 2.8 2.8 物體的描述物體的描述 2.9 2.9 逆變換逆變換 2.10 2.10 一般性旋轉(zhuǎn)變換一般性旋轉(zhuǎn)變換 2.11 2.11 等價旋轉(zhuǎn)角與旋轉(zhuǎn)軸等價旋轉(zhuǎn)角與旋轉(zhuǎn)軸 2.12

2、 2.12 擴展與縮小擴展與縮小 2.13 2.13 透視變換透視變換 2.14 2.14 變換方程變換方程 2.15 2.15 小結(jié)小結(jié) 2.1 2.1 引言引言 (Introduction) 機器人操作涉及到各物體之間的關(guān)系和各物體與機械手之間的 關(guān)系。這一章將給出描述這些關(guān)系必須的表達方法。類似這種表示 方法在計算機圖形學(xué)中已經(jīng)解決。在計算機圖形學(xué)和計算機視覺中, 物體之間的關(guān)系是用齊次坐標變換來描述的。在本課程我們將采用 齊次坐標變換來描述機械手各關(guān)節(jié)坐標之間、各物體之間以及各物 體與機械手之間的關(guān)系。 本章首先介紹向量和平面的表示方法,然后引出向量和平面的 坐標變換,這些變換基本上是

3、由平移和旋轉(zhuǎn)組成,因此可以用坐標 系來描述各種物體和機械手的空間位置和姿態(tài)。稍后還要介紹逆變 換,逆變換是運動學(xué)求解的基礎(chǔ)。 a 0 v z y x z y x p c b 0 u E H 圖2.1 點向量的描述 2.2 2.2 點向量點向量和平面的描述和平面的描述(Notation of point vectors and planes) 2.2.1 2.2.1 點向量(點向量(Point vectorsPoint vectors) 點向量描述空間的一個點在某個坐標系的空間位 置。同一個點在不同坐標系的描述及位置向量的值也 不同。如圖2.1中,點p在E坐標系上表示為 Ev,在H坐 標系上表示

4、為 Hu,且v u。一個點向量可表示為 v = ai + bj + ck 通常用一個(n + 1)維列矩陣表示,即除 x、y、 z 三個方向上的分量外,再加一個比例因子 w ,即 v = x y z w T 其中 a = x/w, b = y/w, c = z/w。 改變比例因子 w,則分量 a、b、c 的數(shù)值相應(yīng)改變,但描述的還是同一個點向量。如 v = 3i + 4j + 5k 可表示為 v = 3 4 5 1 T = 6 8 10 2 T = -3 -4 -5 -1T 在向量中增加一個比例因子 w 是為了方便坐標變換中的矩陣運算。 已知兩個向量 a = ax i + ay j + az

5、k b = bx i + by j + bz k (2.1) 向量的點積是標量。用“ ”來定義向量點積,即 a b = ax bx + ay by + az bz (2.2 ) 向量的叉積是一個垂直于由叉積的兩個向量構(gòu)成的平面的向量。用 “”表示叉積,即 a b = ( ay bz az by ) i + ( az bx ax bz ) j + ( ax by ay by ) k ( 2.3) 可用行列式表示為 i j k a b = ax ay az (2.4) bx by bz 2.2.2 2.2.2 平面(平面(PlanesPlanes) 平面可用一個行矩陣表示,即 p = a b c

6、d (2.5) 它表示了平面p的法線方向,且距坐標原點的 距離為d / m,其中 m = (2.6) 如圖2.2所示,如果將 xy 平面沿z 軸正 方向平移一個單位距離,構(gòu)成平面 p,則 p = 0 0 1 -1 即 a = 0, b = 0, c = 1, d = -1, m = = 1 平面p上任一點v為 v = x y 1 1 T,它與平面p的點乘為零,即 p v = 0 平面p上方任一點v,如 v = 0 0 2 1 T,它與平面p的點乘為一個正數(shù),即 p v = 1 平面p下方任一點v,如 v = 0 0 0 1 T,它與平面p的點乘為一個負數(shù),即 p v = -1 注意:平面注意:

7、平面 0 0 0 0 無定義。無定義。 a2 + b2 + c2 a2 + b2 + c2 圖2.2 平面的描述 0 v p z y x 1 y x H空間的變換是由44矩陣來完成的,它可以表示平移、旋轉(zhuǎn)、擴展和透視 等各種變換。如已知點u(在平面p上),它的變換v(在平面q上)用矩陣積表示為 v = H u (2.7) 其中H為44 變換矩陣,u和v為41的點列向量,相應(yīng)的平面p到q的變換是 q = p H-1 (2.8) 其中H-1為H的逆陣,p和q為14 的平面行向量。 經(jīng)變換后的平面向量q與點向量v的點乘為 q v = p H-1 H u p u ( 2.9) 與變換前平面p與點u的點

8、乘相等,證明了變換的等效性。 2.3 2.3 變換變換(Transformation) 2.4 2.4 平移變換平移變換(Translation transformation) 用向量 h a i + b j + c k 進行平移,其相應(yīng)的H變換矩陣是 1 0 0 a 0 1 0 b H = Trans ( a b c ) = 0 0 1 c (2.10) 0 0 0 1 因此對向量 u = x y z w T,經(jīng)H變換為向量v可表示為 x + aw x / w + a y + bw y / w + b v = z + cw = z / w + c (2.11) w 1 可見,平移實際上是對已

9、知向量 u = x y z w T 與平移向量 h = a b c 1 T 相加。 【例2.1】對點向量 u = 2 3 2 1 T 進行平移,平移向量為 h = 4 -3 7 1 T,則平 移后的向量為 v = 6 0 9 1 T,或 1 0 0 4 2 6 0 1 0 3 3 0 v = H u = 0 0 1 7 2 = 9 0 0 0 1 1 1 點向量的平移過程如圖2.3所示。 對平面的平移則用 H1 進行變換,如對平面 p = 1 0 0 -2 進行 H 變換為平面q,則根據(jù)變 換原理有 1 0 0 -4 0 1 0 3 q p H1 1 0 0 -2 0 0 1 -7 0 0 0

10、 1 1 0 0 -6 平面 p 1 0 0 -2 是 yz 平面沿 x 正方向移動2個單位形成的平面(圖2.3),點u = 2 3 2 1 T 是平面 p上的一個點,它們的點乘 p u = 0。經(jīng) H 變換后的平面 q 1 0 0 -6 是 y z 平面沿 x 正方向移動6個單位形成的平面,點v = 6 0 9 1T 是平面 q上一個點,平面 q 與 點 v 的點乘也應(yīng)是零,即 q v 0,說明變換前后的結(jié)果不變,證明 H 變換是正確的。 u 0 z y x 3 P 2 2 圖2.3 點向量的平移 v 6 9 q p 2.5 2.5 旋轉(zhuǎn)變換旋轉(zhuǎn)變換(Rotation transformat

11、ion) 如圖2.4所示,繞 x, y, z 軸旋轉(zhuǎn)一個角 的相應(yīng)變換是 1 0 0 0 0 cos - sin 0 Rot ( x, ) = 0 sin cos 0 (2.12) 0 0 0 1 cos 0 sin 0 0 1 0 0 Rot ( y, ) = - sin 0 cos 0 (2.13) 0 0 0 1 cos - sin 0 0 sin cos 0 0 Rot ( z, ) = 0 0 1 0 (2.14) 0 0 0 1 注意:角旋轉(zhuǎn)的正方向遵 循右手螺旋法則(如圖2.4 所示) 圖2.4 旋轉(zhuǎn)變換 0 z y x 【例2.2】點 u = 7i + 3j + 2k,它繞z軸

12、旋轉(zhuǎn)90為v, 經(jīng)式(2.14)變換得到( sin=1,cos=0) 0 -1 0 0 7 -3 1 0 0 0 3 7 v = Rot ( z, 90) = 0 0 1 0 2 2 0 0 0 1 1 1 起始點u和終點v如圖2.5所示。如將v點再繞y軸 旋轉(zhuǎn)90得到w。用式(2.13)變換得到 0 0 1 0 -3 2 0 1 0 0 7 7 w = Rot ( y, 90) = -1 0 0 0 2 3 0 0 0 1 1 1 結(jié)果如圖2.6所示。如果將上述兩次旋轉(zhuǎn)結(jié)合起來, 寫成一個表達式得到 w = Rot ( y, 90) v Rot ( y, 90) Rot ( z, 90) u

13、 用兩個變換矩陣 Rot ( y, 90) 、 Rot ( z, 90) 和起始 點u代入上式計算的結(jié)果與前面分兩次計算的結(jié)果相同。 2 u z y x v 0 圖2.5 Rot ( z, 90) y u v 0 z x w 圖2.6 Rot ( y, 90) Rot ( z, 90) 2 7 為此,先將點u繞z軸旋轉(zhuǎn)90,然后再繞y軸旋轉(zhuǎn)90,我們得到 0 0 1 0 0 -1 0 0 7 2 0 1 0 0 1 0 0 0 3 7 w Rot ( y, 90) Rot ( z, 90) u = -1 0 0 0 0 0 1 0 2 3 0 0 0 1 0 0 0 1 1 1 如果按著逆序旋

14、轉(zhuǎn),首先繞y軸旋轉(zhuǎn)90,然后再繞z軸旋轉(zhuǎn)90,其結(jié)果為 0 -1 0 0 0 0 1 0 7 -3 1 0 0 0 0 1 0 0 3 2 w = Rot ( z, 90) Rot ( y, 90) u = 0 1 0 0 -1 0 0 0 2 = -7 0 0 0 1 0 0 0 1 1 1 逆序旋轉(zhuǎn)的結(jié)果如圖2.7所示。顯然,變換的順序不同,其結(jié)果也不同變換的順序不同,其結(jié)果也不同 。這從 矩陣相乘是不可交換的(ABBA)也可以得到證明。 如對經(jīng)過兩次旋轉(zhuǎn)變換得到的點向量w再進行一次平移(平移向量為 h 4 -3 7 1T ), 則可得到如圖2.8所示的點向量n。變換過程如下 1 0 0

15、4 2 6 0 1 0 -3 7 4 n = Trans (4, 3, 7) w = 0 0 1 7 3 = 10 0 0 0 1 1 1 z u v 0y x w 圖2.8 Trans(4, -3, 7)Rot(y, 90) Rot(z, 90) n 7 2 w 0 z y x u 圖2.7 Rot ( z, 90) Rot ( y, 90) 2 -7 v 2.6 2.6 坐標系坐標系 (Coordinate frames) 齊次變換矩陣H由四個列向量組成,它的前三個列向量稱為方向向量,由式 (2.12)到式(2.14)的旋轉(zhuǎn)變換(分別繞 x、y、z 軸旋轉(zhuǎn)角)確定,第四個列向 量稱為平移向

16、量,它的平移分量(沿 x、y、z 軸的平移量)由式(2.10)第四列的前 三個元素確定。如 0 0 1 4 1 0 0 -3 HTrans ( 4, -3, 7 ) Rot ( y, 90) Rot ( z, 90) = 0 1 0 7 (2.15) 0 0 0 1 坐標系的原點,即零向量 0 0 0 1 T 的 H 變換是 4 -3 7 1 T,相當(dāng)于將原點按平移 向量的各個分量進行平移的結(jié)果( 如圖 2.9 所 示)。如果對 x、y、z 軸的單位向量進行 H變 換,分別得到 4 -2 7 1 T 、 4 -3 8 1 T 和 5 -3 7 1 T。這四個向量在圖2.9中標出,并 形成了一個

17、新坐標系。 0 z y x z y x 0 Trans ( 4, -3, 7 ) Rot ( z, 90) Rot ( y, 90) 圖2.9 坐標原點與單位向量的H 變換 這個新坐標系的 x、y、z 軸的方向分別是 0,1,0,0 T、 0,0,1,0 T 和 1,0,0,0 T,它是由單位向量的H變換減去這個坐標原點的向量得到的。 這些方向向量相應(yīng)于變換矩陣的前三列(見式(2.15)??梢姡琀變換矩陣描述 了一個坐標系繞原參考坐標系旋轉(zhuǎn)和對參考坐標系平移的三個軸的方向和原點的 位置(見圖2.9)。如圖2.10所示,當(dāng)對一個向量 n 進行式(2.15)給出的 H 變換 時,原向量 n 可以被

18、認為是在新坐標系描述的那個向量 u ,即被變換了的向量 u 就是相對于參考坐標系描述的同一個向量 n 。 0 0 z z y y x x u ( 7, 3, 2, 1 ) n ( 6, 4, 10, 1 ) 圖2.10 向量的 H 變換 2.7 2.7 相對變換相對變換(Relative transformation) 我們剛剛描述的旋轉(zhuǎn)和平移都是相對于一個固定的坐標系而進行的。這樣,在 已給的例子里 0 0 1 4 1 0 0 -3 Trans ( 4, -3, 7 ) Rot ( y, 90) Rot ( z, 90) = 0 1 0 7 (2.16) 0 0 0 1 坐標系首先繞參考坐標

19、系 z 軸旋轉(zhuǎn)90,然后繞 y 軸旋轉(zhuǎn) 90,最后平移 4i3j+7k, 如圖2.9所示。如果以相反次序從左到右來進行這些操作:首先對坐標平移4i3j+7k,然 后將它繞當(dāng)前坐標系的 y 軸旋轉(zhuǎn) 90,此時當(dāng)前坐標系的 y 軸與參考坐標系的 y 軸是相同 的。然后再繞著新坐標系(當(dāng)前的)坐標系的 z 軸旋轉(zhuǎn)90,所得結(jié)果與前面的方法相同 (見圖2.11)。 0 0 zz z z y yy y x x x x Rot ( y, 90)Rot ( z, 90) Trans ( 4, -3, 7 ) 坐標原點 圖2.11 相對變換 一般的情況下,如果我們用一個旋轉(zhuǎn)和/或平移變換矩陣右乘一個坐標系的變

20、 換,那么產(chǎn)生的平移和/或旋轉(zhuǎn)是相對于前一個變換的坐標系(當(dāng)前坐標系)的軸 來說的。如果我們用一個描述平移和/或旋轉(zhuǎn)的變換矩陣左乘一個坐標系的變換, 那么產(chǎn)生的平移和/或旋轉(zhuǎn)是相對于基坐標系來說的。 【例2.3】給一個坐標系C和一個變換T,T為繞 z 軸旋轉(zhuǎn)90,并在 x 軸方向上平移10 個單位,當(dāng)變換是相對于基坐標系產(chǎn)生時,我們用 T 左乘 C 得到新的位置 x 為 0 -1 0 10 1 0 0 20 0 0 1 0 1 0 0 0 0 0 -1 10 1 0 0 20 x = T C = 0 0 1 0 0 1 0 0 0 1 0 0 (2.17) 0 0 0 1 0 0 0 1 0

21、0 0 1 當(dāng)變換是相對于當(dāng)前坐標系 C 軸產(chǎn)生時,我們用 T 右乘 C 得到新的位置 y 為 1 0 0 20 0 -1 0 10 0 -1 0 30 0 0 -1 10 1 0 0 0 0 0 -1 10 y = C T = 0 1 0 0 0 0 1 0 1 0 0 0 (2.18) 0 0 0 1 0 0 0 1 0 0 0 1 結(jié)果如圖2.12所示。 Y X Trans (10, 0, 0 ) Rot ( z, 90) 0 z y x x x x x y y y y z z z z Rot ( z, 90) Trans (10, 0, 0 ) 圖2.12 相對于基坐標系和當(dāng)前坐標系的

22、變換 2.8 2.8 物體的描述物體的描述(Object representation) 變換可用來描述物體的位置與方向(方位)。如圖2.13所示的楔形物體用六個角點 來描述,這六個角點是相對于物體所在的參考坐標系的。如果把物體繞 z 軸旋轉(zhuǎn) 90, 然后繞 y 軸旋轉(zhuǎn) 90,接著沿 x 方向平移4個單位,我們可以描述這個變換為 0 0 1 4 1 0 0 0 Trans ( 4, 0, 0 ) Rot ( y, 90) Rot ( z, 90) = 0 1 0 0 0 0 0 1 這個變換表示了對參考坐標系的旋轉(zhuǎn)和平移操作,變換后物體的六個角點為 4 4 6 6 4 4 0 0 1 4 1

23、-1 -1 1 1 -1 1 -1 -1 1 1 -1 1 0 0 0 0 0 0 0 4 4 0 0 0 0 4 4 = 0 1 0 0 0 0 0 2 2 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 變換后該物體在坐標上的方位如圖2.13所示。 從圖2.13可以看出,由于楔形物體的角點與它所在的坐標系有固定的關(guān)系, 因此沒有必要對所有的角點進行變換,只要對物體所在的坐標系進行變換,就可 得到變換后的各個角點在基坐標中的位置,將這些角點用直線連接起來就可得到 楔形物體的邊緣,它與逐點變換的結(jié)果完全相同(見圖2.14)。 ( -1, 0, 0 ) ( -1, 0, 2

24、) ( 1, 0, 2 ) ( 1, 4, 0 ) ( -1, 4, 0 ) ( 1, 0, 0 ) z y x 0 圖2.13 楔形物體圖2.14 被變換的楔形物體 ( 4, 1, 0 ) ( 4, -1, 4 ) ( 4, 1, 4 ) ( 6, 1, 0 ) ( 6, -1, 0 ) ( 4, -1, 0 ) y x 0 y x z z 2.9 2.9 逆變換逆變換(Inverse transformation) 所謂逆變換就是將被變換的坐標系返回到原來的坐標系,在數(shù)學(xué)上就是求變 換矩陣的逆。 下面我們寫出變換矩陣的一般表達形式 nx ox ax px ny oy ay py T = n

25、z oz az pz (2.19) 0 0 0 1 式中 n, o, a 是旋轉(zhuǎn)變換列向量,p 是平移向量,其逆是 nx ny nz - p.n ox oy oz - p.o T-1 = ax ay az - p.a (2.20) 0 0 0 1 式中的 “ . ” 表示向量的點積。這個結(jié)果很容易用式2.19右乘式2.20是單位矩陣 來證明。 2.10 2.10 一般性旋轉(zhuǎn)變換(一般性旋轉(zhuǎn)變換(General rotation transformation) 前面我們介紹的旋轉(zhuǎn)變換都是繞 x,y,z 軸旋轉(zhuǎn)的旋轉(zhuǎn)變換,這些變換都有 一個簡單的幾何解釋。例如:在繞 z 軸旋轉(zhuǎn)的情況下,表示 z

26、軸保持恒定,x 軸和 y 軸將如圖2.15所示那樣變化。 圖2.15 繞 z 軸的旋轉(zhuǎn) z 0 z y y x x Cos Sin Sin Cos 如圖2.16所示,給出一個變換矩陣 C,它繞 任意向量 k 旋轉(zhuǎn),我們把 k當(dāng)作 C坐標系的 z 軸單 位向量。 nx ox ax 0 ny oy ay 0 C = nz oz az 0 (2.21) 0 0 0 1 k = ax i + ay j + az k (2.22) 繞 k 旋轉(zhuǎn)就相等于繞 C 坐標系的 z 軸旋轉(zhuǎn)。 Rot( k,)= Rot(Cz,) (2.23) 如果我們給一個坐標系T,它在參考坐標 系里被描述,它在C坐標系里用X描

27、述,這樣 T = C X (2.24) 其中X描述T相對C的位姿,求X,我們得到 X = C-1 T (2.25) k T z z y y x x x 0 0 圖2.16 一般性旋轉(zhuǎn)變換 C T 繞 k 旋轉(zhuǎn)就等于繞坐標系的 z 軸旋轉(zhuǎn) Rot( k, ) C Rot( z, )X (2.26) Rot( k, ) C Ro t( z, )C-1 T (2.27) 這樣 Rot( k, ) C Rot( z, )C-1 (2.28) 展開式(2.28),我們發(fā)現(xiàn) C Rot( z, )C-1 僅是 k 的函數(shù)。 用C-1右乘 Rot( z, ) ,我們得到 cos -sin 0 0nx ny

28、nz 0 sin cos 0 0ox oy oz 0 Rot( z, )C-1 0 0 1 0ax ay az 0 0 0 0 1 0 0 0 1 nx cosox sin ny cosoy sin nz cosoz sin 0 nx cos + ox sin ny cos + oy sin nz cos+ oz sin 0 = ax ay az 0 (2.29) 0 0 0 1 再用C左乘 nx ox ax 0 ny oy ay 0 C = nz oz az 0 (2.30) 0 0 0 1 得到 C Rot( z, )C-1 = nxnx cos nxox sin+ nxox sin+ o

29、xox cos+ ax ax nynx cos nyox sin+ nxoy sin+ oyox cos+ ay ax nznx cos nzox sin+ nxoz sin+ oz ox cos+ az ax 0 nxny cos nxoy sin+ nyox sin+ oyox cos+ ax ay nyny cos nyoy sin+ nyoy sin+ oyoy cos+ ay ay nzny cos nzoy sin+ nyoz sin+ oyoz cos+ az ay 0 nxnz cos nxoz sin+ nzox sin+ ozox cos+ ax az 0 nynz cos

30、 nyoz sin+ nzoy sin+ ozoy cos+ ay az 0 nznz cos nzoz sin+ nzoz sin+ ozoz cos+ az az 0 (2.31) 0 1 應(yīng)用下列關(guān)系進行簡化: C 坐標系任意的行或列與其他行或列的點積為零,因為這些向量是正交的; C 坐標系任意的行或列與其自身的點積為I ,因為它們是單位量; z 向量是 x 和 y 向量的叉積:a = n o,它有下列分量 ax = ny oz nz oy ay = nz ox nx o z az = nx oy ny ox 正矢 Vers=(1cos),簡寫成 Vers,且 kx = ax ,ky =

31、 ay ,kz = az 。由此可得到 簡化式為 Rot ( k, ) = kx kx Vers+ cos ky kx Verskz sin kz kx Vers + kysin 0 kx kyVers+ kz sin ky ky Vers+ cos kz kyVers kzxsin 0 kx kzVerskysin ky kz Vers + kxsin kz kzVers+ cos 0 (2.32) 0 0 0 1 上式是一般性的旋轉(zhuǎn)變換的重要結(jié)論。從這個結(jié)論可以得出每一個基本旋轉(zhuǎn)變換。例如: Rot ( x, )就是Rot ( k, )當(dāng) kx= 1,ky= 0, kz= 0 的情況,將這

32、些值代入式(2.32)得到 1 0 0 0 0 cos -sin 0 Rot ( x, ) = 0 sin cos 0 (2.33) 0 0 0 1 這個結(jié)果與以前一樣。 2.11 等價旋轉(zhuǎn)角與旋轉(zhuǎn)軸等價旋轉(zhuǎn)角與旋轉(zhuǎn)軸(Equivalent angle and axis of rotation) 任給一個旋轉(zhuǎn)變換,從(2.32)方程得到一個軸,繞這個軸旋轉(zhuǎn)的等價旋轉(zhuǎn)角可由 如下方法得到。已知一個旋轉(zhuǎn)變換 R nx ox ax 0 ny oy ay 0 R = nz oz az 0 (2.34) 0 0 0 1 令 R 和式 (2.32)的 Rot ( k, ) 相等,并將對角線各項相加得到 n

33、x + oy + az +1 = k2x Vers+ cos+ k2yVers+ cos + k2z Vers+ cos+1 (2.35) nx + oy + az = ( k2x + k2y + k2z ) Vers+ 3cos = 1 + 2cos (2.36) 由此可得到旋轉(zhuǎn)角的余弦是 cos = 1/2(nx + oy + az1) (2.37) 對非對角線項相減,我們得到 oz ay = 2 kx sin (2.38) ax nz = 2 ky sin (2.39) ny ox = 2 kz sin (2.40) 把式(2.38)到式(2.40)兩邊平方并相加有 (oz ay)2 +

34、( ax nz)2 +( ny ox )2 = 4 sin2 (2.41) 我們得到了sin的表達式 sin = 1/2(oz ay)2 +( ax nz)2 +( ny ox )2 (2.42) 規(guī)定這個旋轉(zhuǎn)是繞 k 正方向旋轉(zhuǎn),當(dāng) 0180時,在上式中取十號是合理的。 這個旋轉(zhuǎn)角被唯一定義為 tan =(oz ay)2 +( ax nz)2 +( ny ox )2 /(nx + oy + az1 ) (2.43) k的各分量為 kx =(ozay)/ 2 sin (2.44) ky =(axnz)/ 2 sin (2.45) kz =(nyox)/ 2 sin (2.46) 注意注意:當(dāng)旋

35、轉(zhuǎn)角較小或接近 180時,上述三個式子的分子和分母都很小,所計算 的k值是不精確的。為此可繼續(xù)根據(jù)式(2.32)和式(2.33)對應(yīng)元素以及它們的 代數(shù)和相等的關(guān)系來求出k的各個分量。 2.12 2.12 擴展與縮小擴展與縮?。⊿tretching and scaling) 一個變換T a 0 0 0 0 b 0 0 T = 0 0 c 0 (2.47) 0 0 0 1 將沿著 x 軸以 a 因子,沿著 y 軸以 b 因子,沿著 z 軸 c 因子均勻擴展著各種物 體。假定在一個物體上任意一個點 x i + y j + z k ,它的變換是 a x a 0 0 0 x b y 0 b 0 0 y

36、 c z = 0 0 c 0 z (2.48) 1 0 0 0 1 1 這個正好表示出所說的擴展。這樣,一個正方體可以由這個變換變成長方體。變換s s 0 0 0 0 s 0 0 s = 0 0 s 0 (2.49) 0 0 0 1 將以s為比例因子來擴展或縮小任一物體。 2.13 透視變換透視變換(Perspective transformation) 假設(shè)由一個簡單透鏡把一個物體形成的像 如圖2.17所示。透鏡的軸沿著 y 的方向,焦距 為f ,物體上的一個點 x, y, z 成象為 x/, y/, z/。 y/ 表示象距,它隨著物距 y 而變化。如果在通 過 y/ 而垂直于 y 的平面(

37、照相機的底片)上畫 出各個點,那么就形成了一個透視像。射線穿 過透鏡中心不偏轉(zhuǎn),則 z / y = z/ / y/ (2.50) x / y = x/ / y/ (2.51) 根據(jù)平行透鏡的軸的射線通過焦點,我們 可以寫出 z / f = z/ / ( y/ + f ) (2.52) x / f = x/ / ( y/ + f ) (2.53) x/ y/ 和 z/ 是負數(shù),而 f 是正數(shù)。用式(2.50) 和式(2.52)消去 y/ ,得 z / f = z/ ( z/ y / z + f ) (2.54) z y x 0 ( x, y, z ) ( x, y, z ) f 圖2.17 透視

38、變換 求出 x/ = x ( 1y/f ) (2.55) y/ = y ( 1y/f ) (2.56) z/ = z ( 1y/f ) (2.57) 齊次變換 p 能導(dǎo)出同樣結(jié)果,變換 p 是 1 0 0 0 0 1 0 0 p = 0 0 1 0 (2.58) 0 -1/f 0 1 任何一點 x i + y j + z k 變換為 x 1 0 0 0 x y 0 1 0 0 y z = 0 0 1 0 z (2.59) 1y/f 0 -1/f 0 1 1 用比例因子 1 y / f 除得到的象點 x/, y/, z/ 有 x /(1y/f) i + y/(1y/f) j + z/(1y/f) k (2.60) 這個

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論