Поделиться через


Matrix3D Структура

Определение

Представляет матрицу 4 х 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

M11System.Double

Значение в первой строке и первом столбце данного объекта Matrix3D. Дополнительные сведения см. в описании свойства M11.

M12System.Double

Значение в первой строке и втором столбце данного объекта Matrix3D. Дополнительные сведения см. в описании свойства M12.

M13System.Double

Значение в первой строке и третьем столбце данного Matrix3Dобъекта . Дополнительные сведения см. в описании свойства M13.

M14System.Double

Значение в первой строке и четвертом столбце данного объекта Matrix3D. Дополнительные сведения см. в описании свойства M14.

M21System.Double

Значение во второй строке и первом столбце данного объекта Matrix3D. Дополнительные сведения см. в описании свойства M21.

M22System.Double

Значение во второй строке и втором столбце данного Matrix3Dобъекта . Дополнительные сведения см. в описании свойства M22.

M23System.Double

Значение во второй строке и третьем столбце данного объекта Matrix3D. Дополнительные сведения см. в описании свойства M23.

M24System.Double

Значение во второй строке и четвертом столбце данного объекта Matrix3D. Дополнительные сведения см. в описании свойства M24.

M31System.Double

Значение в третьей строке и первом столбце данного объекта Matrix3D. Дополнительные сведения см. в описании свойства M31.

M32System.Double

Значение в третьей строке и втором столбце данного Matrix3Dобъекта . Дополнительные сведения см. в описании свойства M32.

M33System.Double

Значение в третьей строке и третьем столбце данного Matrix3Dобъекта . Дополнительные сведения см. в описании свойства M34.

M34System.Double

Значение в третьей строке и четвертом столбце данного объекта Matrix3D. Дополнительные сведения см. в описании свойства M33.

M44System.Double

Значение в четвертой строке и четвертом столбце данного объекта 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

Изменяет эту структуру 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, Matrix3D)

Проверяет равенство двух матриц.

Equals(Matrix3D)

Проверяет равенство двух матриц.

Equals(Object)

Проверяет равенство двух матриц.

GetHashCode()

Возвращает хэш-код для этой матрицы.

Invert()

Преобразует данную структуру Matrix3D.

Multiply(Matrix3D, Matrix3D)

Умножает заданные матрицы.

Parse(String)

Преобразовывает строковое представление объекта Matrix3D в эквивалентную структуру Matrix3D structure.

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)

Добавляет в начало заданный масштаб Vector3D к текущей структуре Matrix3D.

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)

Форматирует значение текущего экземпляра, используя указанный формат.

Применяется к