Silverlight中二維變換詳解
Silverlight 為常見變換變換包括旋轉 (RotateTransform)、縮放 (ScaleTransform)、扭曲 (SkewTransform) 和平移 (TranslateTransform)。
還有一個MatrixTransform 類可以創建 RotateTransform、ScaleTransform、SkewTransform 和 TranslateTransform 類未提供的自定義變換。
下面所有示例藍色為原始位置,紅色為變換后位置,紫色為重疊位置!
一、二維變換矩陣簡介
這個就是二維圖形幾何變換矩陣。
其中 是對圖形進行縮放、旋轉、對稱、錯切等變換。(注:對稱、錯切是計算機圖形學的說法,微軟翻譯成了扭曲,平面變換中是不會變換出扭曲的圖像的。);
是對圖像進行平移變換;
是對圖形做投影變換,Silverlight中不支持;
是對整體圖形做伸縮變換,Silverlight中也不支持;
二、平移變換
僅僅修改OffsetX和OffsetY即可達到目的下面分別顯示了幾組矩陣對應的變換。
可以看出OffsetX和OffsetY的方向和直角坐標系的方向相同。
三、比例變換(縮放)
修改M11和M22是分別對X軸和Y軸進行縮放。M11=M22時為等比例變換,M11!=M22時為非均勻比例變換。
可以看出M11是對Y軸起作用,M22是對X軸起作用。
四、對稱變換
對稱變換一共5種,分別為Y軸對稱,X軸對稱,中心對稱,Y=X對稱,Y=-X對稱,具體見下圖
下面是旋轉30°的變化矩陣。其他角度也都是這個計算式。
六、切錯變換
M12,M21是用來控制切錯變換的。
M12=0,M21!=0時,Y軸坐標不變,X坐標隨初值及變換系數M21做線性變化,M21>0沿+X方向切錯,M21<0沿-X方向切錯。
M21=0,M12!=0時,X軸坐標不變,Y坐標隨初值及變換系數M12做線性變化,M12>0沿+Y方向切錯,M12<0沿-Y方向切錯。
M12!=0且M21!=0時,圖形沿XY兩個方向切錯。
七、復合變換
復合變換其實也就是矩陣相乘。下面給出兩個完整的計算公式:
變換前后xy坐標計算式:
33矩陣相乘公式:
謝謝觀賞,二維變換的矩陣內容就這么多了,三維矩陣變換時44矩陣,有機會再寫吧。