《維變換71簡(jiǎn)介72三維幾何變換73三維坐標(biāo)變換》由會(huì)員分享,可在線閱讀,更多相關(guān)《維變換71簡(jiǎn)介72三維幾何變換73三維坐標(biāo)變換(27頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、第 7章 三 維 變 換 7.1 簡(jiǎn)介 7.2 三維幾何變換 7.3 三維坐標(biāo)變換 7.1 簡(jiǎn)介三維平移變換、比例變換可看成是二維情況的直接推廣。但旋轉(zhuǎn)變換則不然,因?yàn)槲覀兛蛇x取空間任意方向作旋轉(zhuǎn)軸,因此三維變換處理起來(lái)更為復(fù)雜。與二維變換相似,我們也采用齊次坐標(biāo)技術(shù)來(lái)描述空間的各點(diǎn)坐標(biāo)及其變換,這時(shí),描述空間三維變換的變換矩陣是44的形式。由此,一系列變換可以用單個(gè)矩陣來(lái)表示。 7.2 三維幾何變換7.2.1 基本三維幾何變換 1. 平移變換 若空間平移量為(tx, ty, tz),則平移變換為 zyxtzz tyy txx P(x,y,z) P(x,y,z)x yz 10100 0010
2、00011 1 zyx tttzyxzyx補(bǔ)充說(shuō)明:點(diǎn)的平移、物體的平移、多面體的平移、逆變換 2. 比例變換 1000 000 000 0001 1 zyx ssszyxzyx (1) 相對(duì)坐標(biāo)原點(diǎn)的比例變換一個(gè)點(diǎn)P=(x,y,z)相對(duì)于坐標(biāo)原點(diǎn)的比例變換的矩陣可表示為xy z zyx zszysyxsx ,其中zyx sss ,為正值。 (2) 相對(duì)于所選定的固定點(diǎn)的比例變換z xy (xf,yf,zf)z xy (xf,yf,zf)z xy (xf,yf,zf) z xy (xf,yf,zf)(1)(2) (3) 1111 000 000 000, fzfyfx zyxfffzyxfff
3、 zsysxs ssszyxTsssSzyxT 3. 繞坐標(biāo)軸的旋轉(zhuǎn)變換 三維空間中的旋轉(zhuǎn)變換比二維空間中的旋轉(zhuǎn)變換復(fù)雜。除了需要指定旋轉(zhuǎn)角外,還需指定旋轉(zhuǎn)軸。 若以坐標(biāo)系的三個(gè)坐標(biāo)軸x,y,z分別作為旋轉(zhuǎn)軸,則點(diǎn)實(shí)際上只在垂直坐標(biāo)軸的平面上作二維旋轉(zhuǎn)。此時(shí)用二維旋轉(zhuǎn)公式就可以直接推出三維旋轉(zhuǎn)變換矩陣。 規(guī)定在右手坐標(biāo)系中,物體旋轉(zhuǎn)的正方向是右手螺旋方向,即從該軸正半軸向原點(diǎn)看是逆時(shí)針?lè)较颉?(1)繞 z 軸旋轉(zhuǎn)xxx y y yz zzzz yxy yxx cossin sincos xzyx (2)繞 x 軸旋轉(zhuǎn)xx zyz zyy cossin sincos(3)繞 y 軸旋轉(zhuǎn) yy x
4、zx xzz cossin sincos 1000 0100 00cossin 00sincos1 1 zyxzyx 1000 0cossin0 0sincos0 00011 1 zyxzyx 1000 0cos0sin 0010 0sin0cos1 1 zyxzyx 繞 z 軸旋轉(zhuǎn)繞 x 軸旋轉(zhuǎn)繞 y 軸旋轉(zhuǎn) 旋轉(zhuǎn),則該軸坐標(biāo)的一列元素不變。按照二維圖形變換的情況,將其旋轉(zhuǎn)矩陣 cossin sincos中的元素添入相應(yīng)的位置中,即對(duì)于單位矩陣 1000 0100 0010 0001x y zxyz旋轉(zhuǎn)變換矩陣規(guī)律:,繞哪個(gè)坐標(biāo)軸 (1) 繞z軸正向旋轉(zhuǎn)角,旋轉(zhuǎn)后點(diǎn)的z坐標(biāo)值不變, x、y坐
5、標(biāo)的變化相當(dāng)于在xoy平面內(nèi)作正角旋轉(zhuǎn)。 1000 0100 00cossin 00sincos1 1 zyxzyx 1000 0100 0010 0001x y zxyz(2)繞x軸正向旋轉(zhuǎn)角,旋轉(zhuǎn)后點(diǎn)的x坐標(biāo)值不變, Y、z坐標(biāo)的變化相當(dāng)于在yoz平面內(nèi)作正角旋轉(zhuǎn)。 1000 0cossin0 0sincos0 00011 1 zyxzyx 1000 0cos0sin 0010 0sin0cos1 1 xyzxyz即 1000 0cos0sin 0010 0sin0cos1 1 zyxzyx這就是說(shuō),繞y軸的旋轉(zhuǎn)變換的矩陣與繞x軸和z軸變換的矩陣從表面上看在符號(hào)上有所不同。(3) 繞y軸正
6、向旋轉(zhuǎn)角,y坐標(biāo)值不變,z、x的坐標(biāo)相當(dāng)于在zox平面內(nèi)作正角旋轉(zhuǎn),于是 7.2.2 組合變換1.物體繞平行于某一坐標(biāo)軸的旋轉(zhuǎn)變換?;静襟E: (1) 平移物體使旋轉(zhuǎn)軸與所平行的坐標(biāo)軸重合; (2) 沿著該坐標(biāo)軸進(jìn)行指定角度的旋轉(zhuǎn); (3) 平移物體使旋轉(zhuǎn)軸移回到原位置。xyz xyz(a) (b) y xz (c) xz (d) 1 TRTR x 2.繞任意軸旋轉(zhuǎn)的變換(1)平移物體使旋轉(zhuǎn)軸通過(guò)坐標(biāo)原點(diǎn);xyz P1 P2 xyz P1 P2(1)(2)旋轉(zhuǎn)物體使旋轉(zhuǎn)軸與某個(gè)坐標(biāo)軸(如z軸)重合;(3)關(guān)于該坐標(biāo)軸進(jìn)行指定角度的旋轉(zhuǎn); xyz P1P2 (2) y xz P1P2 (3) (
7、4) 應(yīng)用逆旋轉(zhuǎn)變換將旋轉(zhuǎn)軸回到原方向;(5) 應(yīng)用逆平移變換將旋轉(zhuǎn)軸變換到原位置。xyz P1 P2(4) xyz P1 P2(5) 例. 求變換AV,使過(guò)原點(diǎn)的向量V=(a,b,c)與z軸的正向一致。xyz V xyz 實(shí)現(xiàn)步驟:(1)將V繞x軸旋轉(zhuǎn)到xz 平面上;(2)再繞y軸旋轉(zhuǎn)使之與z軸正向重合。旋轉(zhuǎn)角度的確定:繞x軸旋轉(zhuǎn)的角度 等于向量V在yz 平面上的投影向量與z 軸正向的夾角。 xyz V=(a,b,c)V1=(0,b,c)V V 根據(jù)矢量的點(diǎn)乘與叉乘,可以算出: 2222 cos,sin cb ccb b 因此, 1000 00 00 0001 2222 2222 cb cc
8、b b cb bcb cRx 22,0, cbaVRV x 類似地,可以求出: 222 22222 cos,sin cba cbcba a 1000 00 0010 00 222 22222 222222 22 cba cbcba a cba acba cbRy yxV RRA 利用這一結(jié)果,則繞任意軸旋轉(zhuǎn)的變換矩陣可表示為: 111 TRRRRRTR xyzyx xyz P1 P2 x yz P1 P21) Txyz P1P 2 2) xz P1P2 3) yx RR zR 給定具有單位長(zhǎng)的旋轉(zhuǎn)軸A=ax,ay,az和旋轉(zhuǎn)角 , 則物體繞OA軸旋轉(zhuǎn)變換的矩陣表示可確定如下: xxxxxx x
9、xxxxy zxyxxx aaaaaa aaaaaa aaaaaaA T xy xz yz zzyzxz zyyyxy zxyxxxMPP AAIAM aa aa aaA aaaaaa aaaaaa aaaaaaA sincos 000 * A 軸角旋轉(zhuǎn) 7.2.3 繞任意軸旋轉(zhuǎn)變換的簡(jiǎn)單算法xyz o 其中TM表示M的轉(zhuǎn)置矩陣。 利用這一結(jié)果,則繞任意軸旋轉(zhuǎn)的變換矩陣可表示為:傳統(tǒng)的方法通過(guò)繞坐標(biāo)軸旋轉(zhuǎn)變換的乘積表示繞任意軸旋轉(zhuǎn)的變換。與之相比,這種方法更直觀。xyz P1 P2 xyz P1 P2 1 TMTR T其中旋轉(zhuǎn)軸A=ax,ay,az為12 12 PP PP A 7.2.4 三維
10、變換矩陣的功能分塊 sttt paaa paaa paaa zyx zyx332313 322212 312111(1)三維線性變換部分(2)三維平移變換部分(3)透視變換部分(4)整體比例因子 7.3 三維坐標(biāo)變換幾何變換:在一個(gè)參考坐標(biāo)系下將物體從一個(gè)位置移動(dòng)到另一個(gè)位置的變換。坐標(biāo)變換: 一個(gè)物體在不同坐標(biāo)系之間的坐標(biāo)變換。如從世界坐標(biāo)系到觀察坐標(biāo)系的變換;觀察坐標(biāo)到設(shè)備坐標(biāo)之間的變換。再如,對(duì)物體造型時(shí),我們通常在局部坐標(biāo)系中構(gòu)造物體,然后重新定位到用戶坐標(biāo)系。 坐標(biāo)變換的構(gòu)造方法:與二維的情況相同,為將物體的坐標(biāo)描述從一個(gè)系統(tǒng)轉(zhuǎn)換為另一個(gè)系統(tǒng),我們需要構(gòu)造一個(gè)變換矩陣,它能使兩個(gè)坐標(biāo)
11、系統(tǒng)重疊。具體過(guò)程分為兩步:(1)平移坐標(biāo)系統(tǒng)oxyz,使它的坐標(biāo)原點(diǎn)與新坐標(biāo)系統(tǒng)的原點(diǎn)重合;(2)進(jìn)行一些旋轉(zhuǎn)變換,使兩坐標(biāo)系的坐標(biāo)軸重疊。有多種計(jì)算坐標(biāo)變換的方法,下面我們介紹一種簡(jiǎn)單的方法。 xyz (0,0,0) 000 , zyx xuyuzu xzy設(shè)新坐標(biāo)系oxyz 原點(diǎn)的坐標(biāo)為(x0,y0,z0),相對(duì)原坐標(biāo)系其單位坐標(biāo)矢量為: 321 , xxxx uuuu 321 , yyyy uuuu 321 , zzzz uuuu 將原坐標(biāo)系xyz下的坐標(biāo)轉(zhuǎn)換成新坐標(biāo)系xyz的坐標(biāo)可由以下兩步完成:首先, 平移坐標(biāo)系xyz,使其原點(diǎn)與新坐標(biāo)系xyz的原點(diǎn)(x0,y0,z0)重合; xy
12、z (0,0,0) 000 , zyx xuyuzu xzy xyz (0,0,0) 10100 0010 0001 000 zyxT平移矩陣為:(x,y,z)第二步,利用單位坐標(biāo)向量構(gòu)造坐標(biāo)旋轉(zhuǎn)矩陣 1000 000333 222 111 zyx zyx zyx uuu uuu uuuR 該矩陣R將單位向量xu yu zu分別變換到x,y和z 軸。綜合以上兩步,從oxyz到oxyz的坐標(biāo)變換的矩陣為 RzyxT 000 , RzyxTzyxzyx 000 ,1,1,說(shuō)明:變換矩陣TR將一個(gè)直角坐標(biāo)系變換為另一個(gè)坐標(biāo)系。即使一個(gè)坐標(biāo)系是右手坐標(biāo)系,另一個(gè)為左手坐標(biāo)系,結(jié)論依然成立。,也即坐標(biāo)變換公式為: 習(xí)題77-1 對(duì)于點(diǎn)P(x,y,z) ,(1) 寫(xiě)出它繞x 軸旋轉(zhuǎn) 角,然后再繞y軸旋轉(zhuǎn) 角的變換矩陣。 (2)寫(xiě)出它繞 y 軸旋轉(zhuǎn) 角,然后再繞 x 軸旋轉(zhuǎn) 角的變換矩陣。所得到的變換矩陣的結(jié)果一樣嗎?7-2 寫(xiě)出繞空間任意軸旋轉(zhuǎn)的變換矩陣。