計算機圖形學——變換


幾何變換
觀察角度和物體位置的改變可以通過在世界坐標系中對物體進行各種變換來實現,如平移、放縮、旋轉等。  
        
二維窗口的裁剪
選擇顯示的內容--圖形在窗口內的部分被顯示出來,窗口外的部分被裁剪掉
裁剪算法:Sutherland-Cohen算法、Cyrus-Beck算法、梁友棟-Barsky算法、 Sutherland-Hodgman算法等。

幾何變換

坐標系

世界坐標系(world coordinate):一個圖形場景往往由多個對象組成,為了描述它們之間的空間關系,需要把它們置於一個統一的坐標系中,該坐標系稱為世界坐標系。
模型坐標系(modeling coordinate)或局部坐標系(local coordinate):當構造單個對象的數字模型時,為了方便可以將其置於一個特定的坐標系下,即模型坐標系或局部坐標系。
設備坐標系(device coordinate):圖形輸出時,則應在輸出設備上建立一個坐標系,這個坐標系稱為設備坐標系。設備坐標系依據設備的種類有不同的形式,如二維的屏幕坐標系,描述機械手運動軌跡的三維坐標系。
標准化設備坐標系(normalized device coordinate):有些圖形系統,對設備坐標系進行了規范化,將坐標范圍限定在區間{x,y,z | 0≤x≤1, 0≤y≤1, 0≤z≤1}內,稱為標准化設備坐標系。

 

1、平移

點(x’, y’, z’)由點(x, y, z)在x, y和z軸方向分別移動距離Δx, Δy和Δz得到。兩點坐標間的關系為:
        x′=x+Δx
        y′=y+Δy        
        z′=z+Δz

其矩陣形式為:
  

2、放大和縮小

設點(x, y, z)經縮放變換后得點(x′,y′,z′)。兩點坐標間的關系為
      

其中sx,sy和sz 為沿x, y和z軸方向放縮的比例


其矩陣形式是
    

比例因子sx、sy和sz相等時,式是以原點為相似中心的相似變換,如圖是對一三角形作相似比為2的相似變換的情形。


為了使縮放變換后的圖形仍在原位置附近,可另外定義一個相似中心點(xp, yp, zp) 。
先把整個圖形沿x, y和z方向平移–xp, –yp和–zp,相似中心就移到了坐標原點。
然后再對每一點按照式(4.3)作變換。
最后再沿x, y和z方向平移xp, yp和zp,把經過縮放的圖形移回原處。

 這樣做的綜合效果是圖形以(xp, yp, zp)為中心作了縮放變換.

比例變換:

 

 一個問題:把直線ax+by+c=0平移到原點的變換矩陣?
1.沿y軸,平移直線使之通過原點,平移量為c/b,變換矩陣:

2.沿x軸,平移直線使之通過原點,平移量為c/a,變換矩陣:

3、旋轉變換

 設給定點的坐標為
(x, y, z)= (rcos   , rsin   , z)
它繞z軸旋轉α角后,可得點(x′, y′, z′)

該變換的矩陣形式為

繞y軸和x軸的旋轉變換公式分別為

 

繞空間任一通過坐標原點的軸,做旋轉變換,需給出這根軸的方向(Ax,Ay,Az),下面要求(x,y,z)(Ax, Ay, Az)旋轉α后得到(x’,y’,z’)
1)首先建立一個新的坐標系Ouvw, Ow軸的指向和(Ax,Ay,Az)的指向一致.

--實際上就是將(Ax, Ay, Az)變成前面的z軸。
2)把要作旋轉變換的對象從坐標系oxyz變到坐標系Ouvw, 在坐標系Ouvw把物體繞Ow軸旋轉要求轉動的角度;
3)再把旋轉后的對象從坐標系Ouvw變換到原坐標系oxyz中,這樣繞給定的、通過原點的軸的旋轉便完成了。

 

具體計算:

 注意到這里使用轉置矩陣AT來替換逆矩陣A-1

 

式2獲得的是xyz坐標轉換成uvw坐標后,uvw坐標下選擇α后得到的(u’,v’,w’)

式3和4的目的是將(u’,v’,w’)表示為xyz坐標下對應的('x’,'y’,z’)

 4)如果旋轉軸不通過坐標原點,而通過(xp, yp, zp)??
    
       可先調用平移變換移動(xp, yp, zp)成原點,然后再沿着(Ax, Ay, Az) 旋轉α 。
即象縮放變換一樣,先作變換平移(-xp, -yp,-zp),再按前頁的式5作旋轉變換,最后將其平移(xp, yp, zp)。

 

例題

 

 繞x軸旋轉,將a=0,觀察上圖中的V1向量V1(0,b,c)可以得到α的旋轉角表達式

 

 

 

4、錯切變換

 

 錯切變換常用於圖形彈性形變的處理上。錯切變換矩陣對角線上的坐標全為1!

 

5、鏡像

鏡像變換也稱為對稱變換。變換后的圖形是原圖形關於某一軸線或原點的鏡像 。

 

 寫出關於xy平面對稱面的鏡面反射變換

 

 

6、總結

觀察上述的圖形變換:

圖形變化了, 但是原圖形的連邊規則沒有改變,只是頂點位置改變了。

我們可以得出結論:變換圖形就是要改變圖形的幾何關系,即改變頂點坐標,同時保持圖形的拓撲關系不變。

 

齊次坐標與變換的矩陣表示

在實際繪圖時,常要對對象連續做幾次變換,例如作了平移后,作旋轉,再作放大等。這樣對每一點的坐標要依次用式(4.2),式(4.8)和式(4.4)作計算,這樣計算量較大。
如果只有旋轉和放縮,則可把旋轉矩陣表達式和放縮矩陣表達式合並成一個矩陣。可寫成如下形式:

 

 但如果再加上平移變換,變換矩陣就不容易合並了。

 

齊次坐標表示法就是用n+1維向量表示n維向量。

n維向量的變換是在n+1維的空間進行的,變換后的n維結果是被反投回到感興趣的特定的維空間內而得到的。

 例如,我們使用齊次坐標(xh,yh,zh,h)來表示每個三維空間坐標位置(x,y,z)。
 其中參數h可取為任意非零值。最簡單的選擇是取h=1,因此每個三維位置都可用齊次坐標(x,y,z,1)進行表示。
為使平移變換也能象變換上述矩陣變換式那樣容易合並,可以采用齊次坐標。

平移變換

 旋轉變換

 其中h稱為啞坐標 。

普通坐標與齊次坐標的關系為“一對多”

普通坐標×h → 齊次坐標

齊次坐標÷h → 普通坐標

 

例題

 

 答案:D

其次坐標最后一個維度h不在三維空間上有對應,所以不需要考慮。普通坐標×h → 齊次坐標,這里h=2

所以三維空間坐標為(4,3)

 

判斷:
所謂齊次坐標表示,就是用 n+1 維向量表示n維向量,那么普通坐標與齊次坐標的關系為“多對一”的關系。

錯誤,是“一對多”
普通坐標×h → 齊次坐標

使用齊次坐標可以將n維空間的一個點向量唯一的映射到n+1維空間中。

錯誤,“一對多”
普通坐標×h → 齊次坐標

 

變換的模式

具體應用中,有些圖形軟件包提供了兩種圖形的變換模式——圖形模式和空間模式,使我們可以方便地控制變換的次序。

兩種圖形的變換模式
圖形模式:
    矩陣合並時,先調用的矩陣放在右邊,后調用的矩陣放在左邊,也稱為固定坐標系模式。
    特點:每一次變換均可看成相對於原始坐標系中執行的。
空間模式:
  也稱為活動坐標系模式,矩陣的合並方式和圖形模式相反。
  特點:在連續執行幾次變換時,每一次變換均可看成是在上一次變換所形成的新坐標系中進行的。

圖形模式

1、先把圖形繞z軸旋轉30°,然后再沿x軸平移距離7

矩陣合並時,先調用的矩陣放在右邊,后調用的矩陣放在左邊。

 

2、先把圖形沿x軸平移距離7,然后再繞z軸旋轉30°

 

空間模式

先把圖形繞z軸旋轉30°,然后再沿x軸平移距離7

 

 

可看成先對坐標系oxy作旋轉,得到相應的坐標系ox′y′,然后再相對於新坐標系ox′y′作平移得到最后結果。
經變換后得到的三角形相對於原始坐標系的位置與圖4.10(c)是一樣的,只是考慮變換的方式不同。


不同的應用要用不同的變換模式

繪圖的情況下多用圖形模式,因為用戶比較容易估計變換后的結果。
整體變換的基礎上再作一些較獨立的局部變換時,常用空間模式
      如機械手經過變換后移動到適當位置,手腕和手指的運動是相對於手臂的,如果在手臂上建立了一個坐標,考慮手腕手指的運動就簡單多了。當手臂作移動后,固定在手臂上的坐標便成為新坐標,手腕和手指的運動就可以在新坐標中考慮。這種多次變換的情況要用空間模式.






免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM