Matrix 结构

定义

表示用于在二维空间中进行转换的 3x3 仿射转换矩阵。

public value class Matrix : IFormattable
[System.ComponentModel.TypeConverter(typeof(System.Windows.Media.MatrixConverter))]
[System.Serializable]
public struct Matrix : IFormattable
[System.ComponentModel.TypeConverter(typeof(System.Windows.Media.MatrixConverter))]
public struct Matrix : IFormattable
[<System.ComponentModel.TypeConverter(typeof(System.Windows.Media.MatrixConverter))>]
[<System.Serializable>]
type Matrix = struct
    interface IFormattable
[<System.ComponentModel.TypeConverter(typeof(System.Windows.Media.MatrixConverter))>]
type Matrix = struct
    interface IFormattable
Public Structure Matrix
Implements IFormattable
继承
Matrix
属性
实现

注解

3x3 矩阵用于二维 x-y 平面中的转换。 仿射转换矩阵可以相乘,以形成任意数量的线性转换,比如旋转和倾斜(扭曲)并随之转换。 相交转换矩阵的最终列等于 (0、0、1) ,因此只需指定前两列中的成员。 请注意,向量表示为行向量,而不是列向量。

WPF Matrix 使用行主顺序存储,并具有以下结构:

M11 M12 0
M21 M22 0
OffsetX OffsetY 1

最后一行中的成员, OffsetXOffsetY表示转换值。

在方法和属性中,转换矩阵通常指定为只有六个成员的向量,如下所示:

(M11, M12, M21, M22, OffsetX, OffsetY)

虽然可以直接使用Matrix结构来转换单个点,也可以使用一个MatrixTransform转换对象,但 WPF 还提供了一组类,使你可以转换对象,而无需直接处理矩阵:RotateTransformScaleTransformSkewTransformTranslateTransform

XAML 属性用法

<object property="m11, m12, m21, m22, offsetX, offsetY"/>  
- or -  
<object property="Identity"/>  

XAML 值

m11
System.Double

第一行和第一列中 Matrix的值。 有关更多信息,请参见 M11 属性。

m12
System.Double

第一行和第二列中的值。 有关更多信息,请参见 M12 属性。

m21
System.Double

第二行和第一列中的值。 有关更多信息,请参见 M21 属性。

m22
System.Double

第二行和第二列中的值。 有关更多信息,请参见 M22 属性。

offsetX
System.Double

第三行和第一列中的值。 有关更多信息,请参见 OffsetX 属性。

offsetY
System.Double

第三行和第二列中的值。 有关更多信息,请参见 OffsetY 属性。

构造函数

Matrix(Double, Double, Double, Double, Double, Double)

初始化 Matrix 结构的新实例。

属性

Determinant

获取此 Matrix 结构的行列式。

HasInverse

获取一个值,该值指示此 Matrix 结构是否可以反转。

Identity

获取一个恒等 Matrix

IsIdentity

获取一个值,该值指示此 Matrix 结构是否为恒等矩阵。

M11

获取或设置此 Matrix 结构中第一行与第一列相交处的值。

M12

获取或设置此 Matrix 结构中第一行与第二列相交处的值。

M21

获取或设置此 Matrix 结构中第二行与第一列相交处的值。

M22

获取或设置此 Matrix 结构中第二行与第二列相交处的值。

OffsetX

获取或设置此 Matrix 结构中第三行与第一列相交处的值。

OffsetY

获取或设置此 Matrix 结构中第三行与第二列相交处的值。

方法

Append(Matrix)

将指定的 Matrix 结构追加到此 Matrix 结构。

Equals(Matrix)

确定指定的 Matrix 结构是否与此实例相同。

Equals(Matrix, Matrix)

确定两个指定的 Matrix 结构是否相同。

Equals(Object)

确定指定的 Object 是否是一个与此 Matrix 相同的 Matrix 结构。

GetHashCode()

返回此 Matrix 结构的哈希代码。

Invert()

反转此 Matrix 结构。

Multiply(Matrix, Matrix)

Matrix 结构乘以另一个 Matrix 结构。

Parse(String)

将矩阵的 String 表示形式转换为等效的 Matrix 结构。

Prepend(Matrix)

将指定的 Matrix 结构添加到此 Matrix 结构之前。

Rotate(Double)

以此 Matrix 结构的原点为中心旋转指定的角度。

RotateAt(Double, Double, Double)

绕指定的点旋转此矩阵。

RotateAtPrepend(Double, Double, Double)

在此 Matrix 结构前面添加围绕指定点的指定角度的旋转。

RotatePrepend(Double)

在此 Matrix 结构前面添加指定角度的旋转。

Scale(Double, Double)

在此 Matrix 结构后面追加指定的缩放向量。

ScaleAt(Double, Double, Double, Double)

围绕指定的点按指定的量缩放此 Matrix

ScaleAtPrepend(Double, Double, Double, Double)

在此 Matrix 前面添加围绕指定点的指定缩放。

ScalePrepend(Double, Double)

在此 Matrix 结构前面添加指定的缩放向量。

SetIdentity()

将此 Matrix 结构更改为恒等矩阵。

Skew(Double, Double)

在此 Matrix 结构后面追加 x 和 y 维中指定角度的扭曲。

SkewPrepend(Double, Double)

在此 Matrix 结构前面添加 x 和 y 维中指定角度的扭曲。

ToString()

创建此 String 结构的 Matrix 表示形式。

ToString(IFormatProvider)

使用区域性特定的格式设置信息创建此 String 结构的 Matrix 表示形式。

Transform(Point)

Matrix 变换指定的点并返回结果。

Transform(Point[])

用此 Matrix 变换指定的点。

Transform(Vector)

用此 Matrix 变换指定的向量。

Transform(Vector[])

用此 Matrix 变换指定的向量。

Translate(Double, Double)

在此 Matrix 结构后面追加指定偏移量的平移。

TranslatePrepend(Double, Double)

在此 Matrix 结构前面添加指定偏移量的平移。

运算符

Equality(Matrix, Matrix)

确定两个指定的 Matrix 结构是否相同。

Inequality(Matrix, Matrix)

确定两个指定的 Matrix 结构是否不同。

Multiply(Matrix, Matrix)

Matrix 结构乘以另一个 Matrix 结构。

显式接口实现

IFormattable.ToString(String, IFormatProvider)

使用指定格式对当前实例的值设置格式。

适用于

另请参阅