Silverlight中二维变换

Silverlight中为图像的变换提供了以下一些类,包括有RotateTransform(旋转),ScaleTransform(缩放)
,SkewTransform(扭曲),TranslateTransform(平移),和一自定义扩展MatrixTransform类,这些类都不可再继承。
首先来看看二维矩阵是怎么回事,
Silverlight中二维变换
这个就是二维图形几何变换矩阵.
其中m11,m12,m21,m22是对图形进行缩放、旋转、对称、错切等变换,OffsetX ,OffsetY是对图形进行平移变换。
0,0是对图形做投影变换,Silverlight中不支持;1 是对整体图形做伸缩变换,Silverlight中也不支持;
原图不做任何变换的矩阵为:
Silverlight中二维变换
在后面会经常用到这个矩阵。
1:平移变换
 
Silverlight中二维变换
这样就可以将图像以X轴为方向移动50. 

Silverlight中二维变换
这样就可以将图像以X轴为方向移动-50

Silverlight中二维变换
图像以Y轴为方向移动50(-50同理)
可以看出OffsetX和OffsetY的方向和直角坐标系的方向相同。
2:比例变换(放大缩小)

Silverlight中二维变换

修改M11和M22是分别对X轴和Y轴进行缩放。M11=M22时为等比例变换,M11!=M22时为非均匀比例变换。
M11是对Y轴起变换,M22是对X轴起变换。
3:对称变换
当-M11=M22时,是以Y轴对称
Silverlight中二维变换

当M11=-M22时,是以X轴对称
Silverlight中二维变换

当-M11=-M22时,为中心对称
Silverlight中二维变换


Silverlight中二维变换

Silverlight中二维变换

4:旋转变换
下面是旋转30°的变化矩阵。其他角度也都是这个计算式。

Silverlight中二维变换

5:切错变换
M12,M21是用来控制切错变换的。
M12=0,M21!=0时,Y轴坐标不变,X坐标随初值及变换系数M21做线性变化,M21>0沿+X方向切错,M21<0沿-X方向切错。

Silverlight中二维变换

Silverlight中二维变换

M21=0,M12!=0时,X轴坐标不变,Y坐标随初值及变换系数M12做线性变化,M12>0沿+Y方向切错,M12<0沿-Y方向切错。

Silverlight中二维变换

Silverlight中二维变换

M12!=0且M21!=0时,图形沿XY两个方向切错。

Silverlight中二维变换
Tags: 

延伸阅读

最新评论

发表评论