# Matrix 类

## 定义

``public ref class Matrix sealed : MarshalByRefObject, IDisposable``
``public sealed class Matrix : MarshalByRefObject, IDisposable``
``````type Matrix = class
inherit MarshalByRefObject
interface IDisposable``````
``````Public NotInheritable Class Matrix
Inherits MarshalByRefObject
Implements IDisposable``````

## 注解

### 复合转换Composite Transformations

Matrix CMatrix C 在 y 方向上转换3个单位Translate 3 units in the y direction

[2 1 1]ABC = [-2 5 1][2 1 1]ABC = [-2 5 1]

[2 1 1]D = [-2 5 1][2 1 1]D = [-2 5 1]

Matrix类提供若干用于生成复合转换的方法： Multiply 、、、、 Rotate RotateAt Scale ShearTranslateThe Matrix class provides several methods for building a composite transformation: Multiply, Rotate, RotateAt, Scale, Shear, and Translate. 下面的示例创建一个复合变换矩阵，该矩阵首先旋转30度，然后在 y 方向上按系数2缩放，然后在 x 方向平移5个单位：The following example creates the matrix of a composite transformation that first rotates 30 degrees, then scales by a factor of 2 in the y direction, and then translates 5 units in the x direction:

``````Matrix myMatrix = new Matrix();
myMatrix.Rotate(30);
myMatrix.Scale(1, 2, MatrixOrder.Append);
myMatrix.Translate(5, 0, MatrixOrder.Append);
``````
``````Dim myMatrix As New Matrix()
myMatrix.Rotate(30)
myMatrix.Scale(1, 2, MatrixOrder.Append)
myMatrix.Translate(5, 0, MatrixOrder.Append)

``````

## 构造函数

 将 Matrix 类的一个新实例初始化为单位矩阵。Initializes a new instance of the Matrix class as the identity matrix. 将 Matrix 类的一个新实例初始化为指定矩形和点数组定义的几何转换。Initializes a new instance of the Matrix class to the geometric transform defined by the specified rectangle and array of points. 将 Matrix 类的一个新实例初始化为指定矩形和点数组定义的几何转换。Initializes a new instance of the Matrix class to the geometric transform defined by the specified rectangle and array of points. 使用指定的元素初始化 Matrix 类的新实例。Initializes a new instance of the Matrix class with the specified elements.

## 属性

 获取一个浮点值数组，它表示该 Matrix 的元素。Gets an array of floating-point values that represents the elements of this Matrix. 获取一个值，该值指示此 Matrix 是否是单位矩阵。Gets a value indicating whether this Matrix is the identity matrix. 获取一个值，该值指示此 Matrix 是否可逆转。Gets a value indicating whether this Matrix is invertible. 获取此 Matrix 的 x 转换值（dx 值，或第三行、第一列中的元素）。Gets the x translation value (the dx value, or the element in the third row and first column) of this Matrix. 获取此 Matrix 的 y 转换值（dy 值，或第三行、第二列中的元素）。Gets the y translation value (the dy value, or the element in the third row and second column) of this Matrix.

## 方法

 创建此 Matrix 的一个精确副本。Creates an exact copy of this Matrix. 创建一个对象，该对象包含生成用于与远程对象进行通信的代理所需的全部相关信息。Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object. (继承自 MarshalByRefObject) 释放此 Matrix 使用的所有资源。Releases all resources used by this Matrix. 测试指定的对象是否是 Matrix 以及是否与此 Matrix 相同。Tests whether the specified object is a Matrix and is identical to this Matrix. 在垃圾回收将某一对象回收前允许该对象尝试释放资源并执行其他清理操作。Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. 返回哈希代码。Returns a hash code. 检索控制此实例的生存期策略的当前生存期服务对象。Retrieves the current lifetime service object that controls the lifetime policy for this instance. (继承自 MarshalByRefObject) 获取当前实例的 Type。Gets the Type of the current instance. (继承自 Object) 获取生存期服务对象来控制此实例的生存期策略。Obtains a lifetime service object to control the lifetime policy for this instance. (继承自 MarshalByRefObject) 如果此 Matrix 是可逆转的，则进行逆转。Inverts this Matrix, if it is invertible. 创建当前 Object 的浅表副本。Creates a shallow copy of the current Object. (继承自 Object) 创建当前 MarshalByRefObject 对象的浅表副本。Creates a shallow copy of the current MarshalByRefObject object. (继承自 MarshalByRefObject) 通过预先计算指定的 Matrix，将此 Matrix 与 `matrix` 参数中指定的矩阵相乘。Multiplies this Matrix by the matrix specified in the `matrix` parameter, by prepending the specified Matrix. 将此 Matrix 与 `matrix` 参数中指定的矩阵相乘，而且采用 `order` 参数中指定的顺序。Multiplies this Matrix by the matrix specified in the `matrix` parameter, and in the order specified in the `order` parameter. 重置此 Matrix 得到单位矩阵的元素。Resets this Matrix to have the elements of the identity matrix. 预先计算此 Matrix，沿原点并按指定角度顺时针旋转。Prepend to this Matrix a clockwise rotation, around the origin and by the specified angle. 按照 `angle` 参数中指定的顺时针旋转量，对此 Matrix 沿原点（X 和 Y 坐标为零处）旋转。Applies a clockwise rotation of an amount specified in the `angle` parameter, around the origin (zero x and y coordinates) for this Matrix. 沿 `point` 参数中指定的点并通过预先计算该旋转，来顺时针旋转此 Matrix。Applies a clockwise rotation to this Matrix around the point specified in the `point` parameter, and by prepending the rotation. 按指定的顺序，沿指定点顺时针旋转该 Matrix。Applies a clockwise rotation about the specified point to this Matrix in the specified order. 通过预先计算比例向量，将指定的比例向量应用到此 Matrix。Applies the specified scale vector to this Matrix by prepending the scale vector. 使用指定的顺序，将指定的比例向量（`scaleX` 和 `scaleY`）应用到此 Matrix。Applies the specified scale vector (`scaleX` and `scaleY`) to this Matrix using the specified order. 通过预先计算切变变换，将指定的切变向量应用到此 Matrix。Applies the specified shear vector to this Matrix by prepending the shear transformation. 按指定的顺序，将指定的切变向量应用到此 Matrix。Applies the specified shear vector to this Matrix in the specified order. 返回表示当前对象的字符串。Returns a string that represents the current object. (继承自 Object) 对指定的点数组应用此 Matrix 所表示的几何变换。Applies the geometric transform represented by this Matrix to a specified array of points. 对指定的点数组应用此 Matrix 所表示的几何变换。Applies the geometric transform represented by this Matrix to a specified array of points. 只将该 Matrix 的缩放和旋转成分应用到指定的点数组。Applies only the scale and rotate components of this Matrix to the specified array of points. 将数组中的每个矢量与矩阵相乘。Multiplies each vector in an array by the matrix. 该矩阵的转换元素（第三行）被忽略。The translation elements of this matrix (third row) are ignored. 通过预先计算转换向量，将指定的转换向量（`offsetX` 和 `offsetY`）应用到此 Matrix。Applies the specified translation vector (`offsetX` and `offsetY`) to this Matrix by prepending the translation vector. 按指定的顺序，将指定的转换向量应用到此 Matrix。Applies the specified translation vector to this Matrix in the specified order. 将数组中的每个矢量与矩阵相乘。Multiplies each vector in an array by the matrix. 该矩阵的转换元素（第三行）被忽略。The translation elements of this matrix (third row) are ignored.