MatrixTransform之相关矩阵运算

来源:互联网 发布:net snmp windows 编辑:程序博客网 时间:2024/05/23 23:06

最近在学习MatrixTransform,发现对之前学的矩阵乘法竟然忘的一干二净,下面就是这个基础知识的整理。

 

矩阵加法

通常的矩阵加法被定义在两个相同大小的矩阵。两个m×n矩阵A和B的和,标记为A+B,一样是个m×n矩阵,其内的各元素为其相对应元素相加后的值。例如:

973b1461ec9b7c49a781e39aa22623c2

也可以做矩阵的减法,只要其大小相同的话。A-B内的各元素为其相对应元素相减后的值,且此矩阵会和A、B有相同大小。例如:

8e411287f504ba4fe4b6a9a93d2a4f03

 

矩阵乘法

若给出一矩阵 A 及一数字 c,可定义标量积 cA,其中 (cA)[i, j] = cA[i, j]。 例如:

8951d4762a38dcb7a372bb6a5ee0d623

 

设A和B是两个给定如下的矩阵:

95d86d25f324076227a08a1de8ffebbb  b692829bf4f96dbcadb20d1de06aa8a6

8dd1d643ed85e951c415a39cf690b659

举例来说: 

7b62cda9a2e78e8414806c5aea486b5c d3c223ed4af4939e565893b2f3136bae

MatrixTransform  的矩阵运算

假设我们有个点(X,Y) ,我们使用 MatrixTransform  要把它转换成新的点(X1,Y1),则公式为:

X1 = X*M11 + Y*M21+ OffsetX
Y1 = X*M12 + Y*M22+ OffsetY

在Silverlight 和 WPF 中,对应的Xaml 如下:

<MatrixTransform Matrix="M11, M12, M21, M22, OffsetX, OffsetY"/> 

从矩阵运算的角度,就是如下矩阵运算:

image

上述表达式中,乘号左面矩阵的列为为系数表,右边矩阵为向量表。例如,第一行是[X Y 1],因此将X乘上第一个向量,Y乘上第二个向量,1则乘上第三个向量。

参考资料:

矩阵
http://zh.wikipedia.org/zh-cn/%E7%9F%A9%E9%98%B5

矩阵加法
http://zh.wikipedia.org/zh-cn/%E7%9F%A9%E9%99%A3%E5%8A%A0%E6%B3%95

矩阵乘法
http://zh.wikipedia.org/zh-cn/%E7%9F%A9%E9%99%A3%E4%B9%98%E6%B3%95

3D 图形编程的数学基础(2) 矩阵及其运算
http://blog.csdn.net/vagrxie/archive/2009/12/09/4974985.aspx

WPF中的MatrixTransform
http://www.cnblogs.com/zhouyinhui/archive/2007/07/07/809553.html

MatrixTransform
http://blogs.msdn.com/jstegman/archive/2006/04/02/566939.aspx

SVG 的矢量运算
http://www.w3.org/TR/SVG11/coords.html#TransformMatrixDefined

原创粉丝点击