WPF中MatrixTransform的理解与应用

 
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
 

你可能感兴趣的:(Windows,Presentation,Foundation)