Silverlight中二維變換詳解

作者: ☆磊☆  來源: 博客園  發布時間: 2010-10-01 00:09  閱讀: 1098 次  推薦: 0   原文鏈接   [收藏]  

  Silverlight 為常見變換變換包括旋轉 (RotateTransform)、縮放 (ScaleTransform)、扭曲 (SkewTransform) 和平移 (TranslateTransform)。

      還有一個MatrixTransform 類可以創建 RotateTransform、ScaleTransform、SkewTransform 和 TranslateTransform 類未提供的自定義變換。

  下面所有示例藍色為原始位置,紅色為變換后位置,紫色為重疊位置!

  一、二維變換矩陣簡介

image

  這個就是二維圖形幾何變換矩陣。

  其中image 是對圖形進行縮放、旋轉、對稱、錯切等變換。(注:對稱、錯切是計算機圖形學的說法,微軟翻譯成了扭曲,平面變換中是不會變換出扭曲的圖像的。);image 是對圖像進行平移變換;image 是對圖形做投影變換,Silverlight中不支持;image 是對整體圖形做伸縮變換,Silverlight中也不支持;

  原圖不做任何變換的矩陣為:image 在后面會經常用到這個矩陣。

  二、平移變換

  僅僅修改OffsetX和OffsetY即可達到目的下面分別顯示了幾組矩陣對應的變換。

image image

image image

  可以看出OffsetX和OffsetY的方向和直角坐標系的方向相同。

  三、比例變換(縮放)

  修改M11和M22是分別對X軸和Y軸進行縮放。M11=M22時為等比例變換,M11!=M22時為非均勻比例變換。

image

image

image

  可以看出M11是對Y軸起作用,M22是對X軸起作用。

  四、對稱變換

  對稱變換一共5種,分別為Y軸對稱,X軸對稱,中心對稱,Y=X對稱,Y=-X對稱,具體見下圖

image image image image

image  五、旋轉變換

  下面是旋轉30°的變化矩陣。其他角度也都是這個計算式。

image

  六、切錯變換

  M12,M21是用來控制切錯變換的。

  M12=0,M21!=0時,Y軸坐標不變,X坐標隨初值及變換系數M21做線性變化,M21>0沿+X方向切錯,M21<0沿-X方向切錯。

image image

  M21=0,M12!=0時,X軸坐標不變,Y坐標隨初值及變換系數M12做線性變化,M12>0沿+Y方向切錯,M12<0沿-Y方向切錯。

image image

  M12!=0且M21!=0時,圖形沿XY兩個方向切錯。

image

  七、復合變換

  復合變換其實也就是矩陣相乘。下面給出兩個完整的計算公式:

  變換前后xy坐標計算式:

image

  33矩陣相乘公式:

image

  謝謝觀賞,二維變換的矩陣內容就這么多了,三維矩陣變換時44矩陣,有機會再寫吧。

0
0
 
標簽:Silverlight
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()