MatrixTransform
主要通过点的矩阵变换来实现图形的改变,我们常看到的一些效果,如对称效果,就可以通过矩阵变换来实现。
首先,我们先来了解一下
MatrixTransform
的所有参数的意义,
MatrixTransform
的参数如下:
{M11, M 12, M 21, M22, OffesetX,OffsetY}
其中:
{ M11, M12, M21, M22}
构成一个矩阵
A,
用于坐标的变换
,{ OffesetX,OffsetY }
构成平移向量
O,
用于坐标的平移。
例如:我们在屏幕坐标系下有一个点
Pt(x1,y1),
假设
MatrixTransform
中
,M11 = 1,M12 = 0,M21=0,M22=-1, OffsetX = 1, OffsetY = 2
。
MatrixTransform
的工作原理如下:
第一步:我们能够得到一个
2*2
的矩阵
A
为
{M11
,
M12}
{M21
,
M22}
第二步:得到平移向量
O
为
{OffsetX,OffsetY}.
第三步,用点
Pt
乘以矩阵
A
,通过简单的矩阵运算,我们得到
Pt
变换后的坐标
Pt1={x1*M11+y1*M21,x1*M12+y1*M22}={x1,-y1},
第四步,用平移变换
Pt1+O,
得到最终的点
Pt2 ={x1+ OffsetX,-y1+ OffsetY}= {x1+1,-y1+2}
到此,我们已经了解了
MatrixTransform
的基本原理,下面来看一个对称效果的具体例子:
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Name ="myWnd">
画相同两条线
A
,
B
,利用
B
做矩阵变换,使得
B
与
A
对称
-->
2007-1-8 Paul.Peng