1. 程式人生 > >(15)二維圖形基本幾何變換

(15)二維圖形基本幾何變換

圖形變換:一般是指對圖形的幾何資訊經過變換後產生新的圖形。


圖形變換的實質:改變圖形的座標位置。一個圖形的基本要素是點,點構成線,線構成面,若干面構成體,因此只要改變了圖形上的各點座標位置,整個圖形就完成了變換。

在二維空間中,用(x, y)表示平面上一點;在三維空間中用(x, y, z)表示空間一點。因此,可用點的集合(簡稱點集)來表示一個平面圖形或三維立體,寫成矩陣形式為: 


由於圖形的點集可用矩陣方式來表達,因此,圖形變換可以通過矩陣運算來實現,即:


二維圖形幾何變換:是對平面圖形的幾何變換,是不改變圖形的拓撲資訊,只改變幾何資訊(如大小、形狀及相對位置)的變換。例如,將圖形沿某一方向平移一段距離,將圖形旋轉一定角度,或將圖形放大、縮小等。


基本幾何變換都是相對於座標原點和座標軸進行的幾何變換,包括:相對於座標原點的平移、比例縮放、旋轉變換以及相對於座標軸的對稱和錯切變換。(五大基本變換)

齊次座標:用n+1維向量表示n維向量的方法稱之為齊次座標法。
 二維圖形上的一點[x  y]用規範化齊次座標表示為[x  y  1],即用三維向量表示二維向量。
[x  y  1]可看作是z=1的平面上的點。經此表示後,圖形落在z=1的平面上,對圖形的形狀沒有影響。

二維幾何變換矩陣應為3×3階矩陣,即:


其中:a、b、c、d用於比例縮放、對稱、錯切、旋轉等基本變換;k、m用於平移變換;p、q 用於透視變換;s用於全比例變換。 

平移變換

定義:圖形上的任意一點(x, y)沿X軸和Y軸方向分別平移k和m後,成為新圖形上的一點(x‘, y‘)。


顯然有:           x‘= x+k  
                y‘= y+m  
其中,k和m的值可以是正數也可以是負數。

平移變換矩陣:


比例變換

定義:是指圖形相對於座標原點,按X方向上的比例係數a和Y方向上的比例係數d,進行放大或縮小的變換。

 

顯然有:           x‘=x*a  
                y‘=y*d
其中:a>0,d>0

比例變換矩陣:


性質:若a=d=1,恆等變換,圖形不變
                 若a=d>1,圖形等比例放大
                 若0<a=d<1,圖形等比例縮小
                 若a≠d,不等比例變換,圖形將變形
若比例變換矩陣為

此時進行全比例變換,比例係數為(1/S, 1/S)。

旋轉變換

定義:將圖形圍繞座標原點逆時針旋轉一個θ角度(順時針旋轉時θ為負)的變換 。


x=r*cosα    
y=r*sinα
x=r*cos(α+θ) = r*cosαcosθ-r*sinαsinθ
y=r*sin(α+θ) = r*sinαcosθ+r*cosαsinθ
解得:        x‘= xcosθ-ysinθ
            y‘= xsinθ+ycosθ

旋轉變換矩陣:


對稱變換

關於X軸的對稱變換:x‘=x,y‘= -y,變換矩陣為:


關於Y軸的對稱變換:x‘=-x,y‘=y,變換矩陣為:


關於座標原點的對稱變換:x‘= -x,y‘= -y,變換矩陣為:


關於直線y=x的對稱變換:x‘=y,y‘=x,變換矩陣為:


關於直線y=-x的對稱變換:x= -y,y= -x,變換矩陣為:



錯切變換

 定義:錯切變換可使圖形產生變形,即圖形產生扭轉或稱為錯切。常用的錯切變換有兩種,一種是沿X軸方向錯切,一種是沿Y軸方向錯切。


沿X軸方向的錯切
 如果變換前座標點(x, y)與變換後對應的新座標點(x‘, y‘)的關係為:
                                  x‘= x+c*y
                                  y‘= y

稱這一變換為沿X軸方向的錯切變換,其中,c為錯切係數。  

沿X軸方向的錯切變換矩陣:

當c>0時,沿X軸正方向錯切;當c<0時,沿X軸負方向錯切。

沿X軸方向的錯切變換的特點:
1)變換中,點的y座標值不變,而x座標值發生線性變化;
2)平行於X軸的線段,變換後仍平行於X軸;
3)平行於Y軸的線段,變換後錯切成與Y軸成角的直線段,且tanα=cy/y=c;
4)X軸上的點在變換過程中保持不變,而y0的點在變換後都平移了一段距離cy(即x座標有一增量cy)。 

沿Y軸方向的錯切
 如果變換前座標點(x, y)與變換後對應的新座標點(x‘, y‘)的關係為:
                               x‘= x
                               y‘= y+b*x
稱這一變換為沿Y軸方向的錯切變換,其中,b為錯切係數。

沿Y軸方向的錯切變換矩陣: 

當b>0時,沿Y軸正方向錯切;當b<0時,沿Y軸負方向錯切。

沿Y軸方向的錯切變換的特點:
1)變換中,點的x座標值不變,而y座標值發生線性變化;
2)平行於Y軸的線段,變換後仍平行於Y軸;
3)平行於X軸的線段,變換後錯切成與X軸成角的直線段,且tan=bx/x=b;
4)Y軸上的點在變換過程中保持不變,而x0的點在變換後都平移了一段距離bx(即y座標有一增量bx)。

以上五種變換可用統一的變換矩陣形式來實現,稱之為基本變換。