1. 程式人生 > >二維圖形的基本變換與裁剪的變換矩陣

二維圖形的基本變換與裁剪的變換矩陣

設二維平面上有一點(x,y),經過圖形變換後成為另一點(x1,y1),則可用向量乘上一個變換矩陣得:


若用齊次座標表示,則有:


我們稱為二維變換矩陣,可以分為四個矩陣:其中對圖形進行比例變換,旋轉,對稱,錯切等變換;對圖形進行平移變換,對圖形進行投影變換,[i]對整體圖形做比例變換.

1 單一變換

1.1 平移變換:


往x方向移動c,往y軸方向移動f,如圖所示:


1.2 比例變換:


1.2.1 當a=e=1時,為恆等變換,也就是說圖形沒有任何變化

1.2.2 當a=e>1時,圖形沿著兩個座標軸方向等比例放大

1.2.3 當a=e>1時,圖形沿著兩個座標軸方向等比例縮小

1.2.4當a!=e時,圖形沿著兩個座標軸方向非均勻比例變換

如圖:


1.3 對稱變換


當b=d=0,a=-1,e=1時,以y軸對稱

當b=d=0,a=1,e=-1時,以x軸對稱

當b=d=1,a=-1,e=-1時,以原點對稱

當b=d=1,a=0,e=0時,以y=x線

1.4 旋轉變換:


圖形沿著逆時針旋轉θ角

1.5錯切變換:


當d=0時,圖形沿著x方向錯切,


當b=0時,圖形沿著y方向錯切如圖4.1(l)


2 複合變換:

有些複雜的變換通過上面的幾種方法是不可能實現的,需要多種變換組合起來實現,舉個例子:

如圖,我們希望圖形按照我們指定的直線對稱:


首先,我們先將D點移到原點,因為上述的所有對稱變換對稱軸都是經過原點,變換矩陣為:


然後呢,我們順時針旋轉直線α角,讓它和x軸重合


這樣,原先以指定直線為對稱軸做對稱變換就可以轉化為以x軸作為對稱軸做對稱變換


做對稱變換後別忘了做逆變換恢復回原來的位置,先逆時針轉動相同的角度:


再將D點平移到原來的地方:


最後計算結果:


這樣子就完成了複合變換

總而言之,複合變換就是經過一系列變換,使變換目標轉成基本的變換,在逆變換恢復原來的位置