1. 程式人生 > >(16)二維圖形複合變換

(16)二維圖形複合變換

有些變換僅用一種基本變換是不能實現的,必須由兩種或多種基本變換組合才能實現。這種由多種基本變換組合而成的變換稱之為複合變換,相應的變換矩陣稱作為複合變換矩陣。

比如:已知三角形各頂點座標為(10, 10),(10, 30),(30, 15),對其進行下列變換,試寫出複合變換矩陣。
(1)沿X方向平移20,沿Y方向平移15,再繞原點旋轉90度。
(2)繞原點旋轉90度,沿X方向平移20,沿Y方向平移15。
(3)沿X方向放大2倍,Y方向縮小3倍,關於原點對稱,繞原 點旋轉180度。 

1.繞任意點P(xp, yp)作旋轉變換,旋轉角度為θ。


將旋轉中心P(xp, yp)平移到座標原點,變換矩陣為:


繞座標原點旋轉θ角,變換矩陣為:


將旋轉中心P(xp, yp)平移回原來的位置,變換矩陣為:


因此,繞任意點P(xp, yp)旋轉的複合變換矩陣為:


2.相對於任意點P(xp, yp)作比例變換,比例係數為(Sx, Sy),即P點不變的比例變換。


將點P(xp, yp)平移至座標原點,變換矩陣為:

 

相對於座標原點作比例變換,變換矩陣為: 


將點P(xp, yp)平移回原來位置,變換矩陣為:


因此,相對於任意點P(xp, yp)作比例變換的複合變換矩陣為:   T = T1*T2*T3

3.相對於任意點P(xp, yp)作對稱變換 

將點P(xp, yp)平移至座標原點,變換矩陣為:


相對於座標原點作對稱變換,變換矩陣為:


將點P(xp, yp)平移回原來位置,變換矩陣為:


因此,相對於任意點P(xp, yp)作對稱變換的複合變換矩陣為:T = T1*T2*T3 

4.關於任意直線作對稱變換,直線方程為y=mx+b

平移直線(以沿Y軸平移為例),使其通過座標原點,變換矩陣為: 


繞原點順時針旋轉角,使其與X軸重合(其中,tgθ=m)


關於X軸作對稱變換,變換矩陣為: 


繞原點逆時針旋轉角(即作第(2)步的逆運算),變換矩陣為:


平移直線,使其回到原來位置(即作第(1)步的逆運算),變換矩陣為: 


因此,關於任意直線作對稱變換的複合變換矩陣為:     T = T1*T2*T3*T4*T5 

綜上所述,複合變換是通過基本變換組合而成的。
注意:由於矩陣乘法不適用於交換律,即AB≠BA,因此組合的順序是不能顛倒的,順序不同,則變換結果不同。