|
Silverlight 為常見變換變換包括旋轉(zhuǎn) (RotateTransform)、縮放 (ScaleTransform)、扭曲 (SkewTransform) 和平移 (TranslateTransform)。
還有一個MatrixTransform 類可以創(chuàng)建 RotateTransform、ScaleTransform、SkewTransform 和 TranslateTransform 類未提供的自定義變換。
下面所有示例藍(lán)色為原始位置,紅色為變換后位置,紫色為重疊位置!
一、二維變換矩陣簡介
這個就是二維圖形幾何變換矩陣。
其中 是對圖形進(jìn)行縮放、旋轉(zhuǎn)、對稱、錯切等變換。(注:對稱、錯切是計算機(jī)圖形學(xué)的說法,微軟翻譯成了扭曲,平面變換中是不會變換出扭曲的圖像的。);
是對圖像進(jìn)行平移變換;
是對圖形做投影變換,Silverlight中不支持;
是對整體圖形做伸縮變換,Silverlight中也不支持;
原圖不做任何變換的矩陣為: 在后面會經(jīng)常用到這個矩陣。
二、平移變換
僅僅修改OffsetX和OffsetY即可達(dá)到目的下面分別顯示了幾組矩陣對應(yīng)的變換。
可以看出OffsetX和OffsetY的方向和直角坐標(biāo)系的方向相同。
三、比例變換(縮放)
修改M11和M22是分別對X軸和Y軸進(jìn)行縮放。M11=M22時為等比例變換,M11!=M22時為非均勻比例變換。
可以看出M11是對Y軸起作用,M22是對X軸起作用。
四、對稱變換
對稱變換一共5種,分別為Y軸對稱,X軸對稱,中心對稱,Y=X對稱,Y=-X對稱,具體見下圖
下面是旋轉(zhuǎn)30°的變化矩陣。其他角度也都是這個計算式。
六、切錯變換
M12,M21是用來控制切錯變換的。
M12=0,M21!=0時,Y軸坐標(biāo)不變,X坐標(biāo)隨初值及變換系數(shù)M21做線性變化,M21>0沿+X方向切錯,M21<0沿-X方向切錯。
M21=0,M12!=0時,X軸坐標(biāo)不變,Y坐標(biāo)隨初值及變換系數(shù)M12做線性變化,M12>0沿+Y方向切錯,M12<0沿-Y方向切錯。
M12!=0且M21!=0時,圖形沿XY兩個方向切錯。
七、復(fù)合變換
復(fù)合變換其實也就是矩陣相乘。下面給出兩個完整的計算公式:
變換前后xy坐標(biāo)計算式:
33矩陣相乘公式:
謝謝觀賞,二維變換的矩陣內(nèi)容就這么多了,三維矩陣變換時44矩陣,有機(jī)會再寫吧。
NET技術(shù):Silverlight中二維變換詳解,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。