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