Matrix3D 结构

定义

表示用于三维空间转换的 4 x 4 矩阵。

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

示例

// Multiplies a Vector3D by a Matrix3D using the static Multiply method.  
// Returns a Vector3D.

Vector3D vector1 = new Vector3D(20, 30, 40);
Matrix3D matrix1 = new Matrix3D(10, 10, 10, 0, 20, 20, 20, 0, 30, 30, 30, 0, 5, 10, 15, 1);
Vector3D vectorResult = new Vector3D();

vectorResult = Vector3D.Multiply(vector1,matrix1);
// vector Result is equal to (2000, 2000, 2000)
' Multiplies a Vector3D by a Matrix3D using the static Multiply method.  
' Returns a Vector3D.

Dim vector1 As New Vector3D(20, 30, 40)
Dim matrix1 As New Matrix3D(10, 10, 10, 0, 20, 20, 20, 0, 30, 30, 30, 0, 5, 10, 15, 1)
Dim vectorResult As New Vector3D()

vectorResult = Vector3D.Multiply(vector1,matrix1)
' vector Result is equal to (2000, 2000, 2000)

注解

Matrix3D 具有以下行向量语法:

M11 M12 M13 M14
M21 M22 M23 M24
M31 M32 M33 M34
OffsetX OffsetY OffsetZ M44

请注意,由于第四列也是可访问的,因此该矩阵允许开发人员表示仿射和非仿射转换。

矩阵可以追加或追加到其他矩阵。 将矩阵 A 追加到矩阵 B 表示按 B 转换,然后按 A 表示转换:

XAML 属性用法

<object property="m11, m12, m13, m21, m22, m23, m31, m32, m33, offsetX, offsetY, offsetZ"/>  
- or -  
<object property="Identity"/>  

XAML 值

M11
System.Double

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

M12
System.Double

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

M13
System.Double

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

M14
System.Double

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

M21
System.Double

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

M22
System.Double

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

M23
System.Double

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

M24
System.Double

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

M31
System.Double

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

M32
System.Double

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

M33
System.Double

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

M34
System.Double

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

M44
System.Double

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

offsetX
System.Double

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

offsetY
System.Double

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

offsetZ
System.Double

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

构造函数

Matrix3D(Double, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double, Double)

设置矩阵的初始值的构造函数。

属性

Determinant

检索此 Matrix3D 结构的行列式。

HasInverse

获取指示是否可反转此 Matrix3D 的值。

Identity

Matrix3D 结构更改为单位 Matrix3D

IsAffine

获取指示此 Matrix3D 结构是否为仿射结构的值。

IsIdentity

确定此 Matrix3D 结构是否为单位 Matrix3D。

M11

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

M12

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

M13

获取或设置此 Matrix3D 结构中第一行、第三列的值。

M14

获取或设置此 Matrix3D 结构中第一行、第四列的值。

M21

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

M22

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

M23

获取或设置此 Matrix3D 结构中第二行、第三列的值。

M24

获取或设置此 Matrix3D 结构中第二行、第四列的值。

M31

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

M32

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

M33

获取或设置此 Matrix3D 结构中第三行、第三列的值。

M34

获取或设置此 Matrix3D 结构中第三行、第四列的值。

M44

获取或设置此 Matrix3D 结构中第四行、第四列的值。

OffsetX

获取或设置此 Matrix3D 结构中第四行、第一列的值。

OffsetY

获取或设置此 Matrix3D 结构中第四行、第二列的值。

OffsetZ

获取或设置此 Matrix3D 结构中第四行、第三列的值。

方法

Append(Matrix3D)

在当前矩阵后面追加一个指定矩阵。

Equals(Matrix3D)

测试两个矩阵是否相等。

Equals(Matrix3D, Matrix3D)

测试两个矩阵是否相等。

Equals(Object)

测试两个矩阵是否相等。

GetHashCode()

返回此矩阵的哈希代码。

Invert()

反转此 Matrix3D 结构。

Multiply(Matrix3D, Matrix3D)

将指定的矩阵相乘。

Parse(String)

Matrix3D 结构的字符串表示形式转换为等效的 Matrix3D 结构。

Prepend(Matrix3D)

在当前矩阵前面添加一个指定矩阵。

Rotate(Quaternion)

在当前 Matrix3D 后面追加旋转转换。

RotateAt(Quaternion, Point3D)

围绕指定的 Matrix3D 旋转此 Point3D

RotateAtPrepend(Quaternion, Point3D)

在此 Point3D 结构前面添加围绕指定中心 Matrix3D 的旋转。

RotatePrepend(Quaternion)

在此 Quaternion 结构前面添加 Matrix3D 指定的旋转。

Scale(Vector3D)

在此 Vector3D 结构后面追加指定的缩放 Matrix3D

ScaleAt(Vector3D, Point3D)

围绕指定的 Matrix3D 按指定的 Vector3D 对此 Point3D 结构进行缩放。

ScaleAtPrepend(Vector3D, Point3D)

在此 Point3D 结构前面添加围绕指定 Matrix3D 的指定缩放转换。

ScalePrepend(Vector3D)

在当前 Matrix3D 结构前面添加指定的缩放 Vector3D

SetIdentity()

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

ToString()

创建此 Matrix3D 结构的字符串表示形式。

ToString(IFormatProvider)

创建此 Matrix3D 结构的字符串表示形式。

Transform(Point3D)

Point3D 转换指定的 Matrix3D 并返回结果。

Transform(Point3D[])

Point3D 转换数组中指定的 Matrix3D 对象。

Transform(Point4D)

Point4D 转换指定的 Matrix3D 并返回结果。

Transform(Point4D[])

Point4D 转换数组中指定的 Matrix3D 对象并返回结果。

Transform(Vector3D)

用此 Vector3D 转换指定的 Matrix3D

Transform(Vector3D[])

用此 Vector3D 转换数组中指定的 Matrix3D 对象。

Translate(Vector3D)

在当前 Matrix3D 结构后面追加指定偏移量的平移。

TranslatePrepend(Vector3D)

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

运算符

Equality(Matrix3D, Matrix3D)

比较两个 Matrix3D 实例是否完全相等。

Inequality(Matrix3D, Matrix3D)

比较两个 Matrix3D 实例是否完全不相等。

Multiply(Matrix3D, Matrix3D)

将指定的矩阵相乘。

显式接口实现

IFormattable.ToString(String, IFormatProvider)

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

适用于

另请参阅