Matrix3D 结构
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示用于三维空间转换的 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
- 继承
- 属性
- 实现
示例
// 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 值
此 Matrix3D的第一行和第一列中的值。 有关更多信息,请参见 M11 属性。
此 Matrix3D的第一行和第二列中的值。 有关更多信息,请参见 M12 属性。
此 Matrix3D的第一行和第三列中的值。 有关更多信息,请参见 M13 属性。
此 Matrix3D的第一行和第四列中的值。 有关更多信息,请参见 M14 属性。
此 Matrix3D的第二行和第一列中的值。 有关更多信息,请参见 M21 属性。
此 Matrix3D的第二行和第二列中的值。 有关更多信息,请参见 M22 属性。
此 Matrix3D的第二行和第三列中的值。 有关更多信息,请参见 M23 属性。
此 Matrix3D的第二行和第四列中的值。 有关更多信息,请参见 M24 属性。
此 Matrix3D的第三行和第一列中的值。 有关更多信息,请参见 M31 属性。
此 Matrix3D的第三行和第二列中的值。 有关更多信息,请参见 M32 属性。
此 Matrix3D的第三行和第三列中的值。 有关更多信息,请参见 M34 属性。
此 Matrix3D的第三行和第四列中的值。 有关更多信息,请参见 M33 属性。
此 Matrix3D的第四行和第四列中的值。 有关更多信息,请参见 M44 属性。
offsetXSystem.Double
此 Matrix3D的第四行和第一列中的值。 有关更多信息,请参见 OffsetX 属性。
offsetYSystem.Double
此 Matrix3D的第四行和第二列中的值。 有关更多信息,请参见 OffsetY 属性。
offsetZSystem.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 | |
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) | |
RotateAtPrepend(Quaternion, Point3D) | |
RotatePrepend(Quaternion) |
在此 Quaternion 结构前面添加 Matrix3D 指定的旋转。 |
Scale(Vector3D) | |
ScaleAt(Vector3D, Point3D) | |
ScaleAtPrepend(Vector3D, Point3D) | |
ScalePrepend(Vector3D) | |
SetIdentity() |
将此 Matrix3D 结构更改为恒等矩阵。 |
ToString() |
创建此 Matrix3D 结构的字符串表示形式。 |
ToString(IFormatProvider) |
创建此 Matrix3D 结构的字符串表示形式。 |
Transform(Point3D) | |
Transform(Point3D[]) | |
Transform(Point4D) | |
Transform(Point4D[]) | |
Transform(Vector3D) | |
Transform(Vector3D[]) | |
Translate(Vector3D) |
在当前 Matrix3D 结构后面追加指定偏移量的平移。 |
TranslatePrepend(Vector3D) |
在此 Matrix3D 结构前面添加指定偏移量的平移。 |
运算符
Equality(Matrix3D, Matrix3D) |
比较两个 Matrix3D 实例是否完全相等。 |
Inequality(Matrix3D, Matrix3D) |
比较两个 Matrix3D 实例是否完全不相等。 |
Multiply(Matrix3D, Matrix3D) |
将指定的矩阵相乘。 |
显式接口实现
IFormattable.ToString(String, IFormatProvider) |
使用指定格式对当前实例的值设置格式。 |