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


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 имеет следующий синтаксис вектора строк:

Столбец 1 Столбец 2 Столбец 3 Столбец 4
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.

смещениеSystem.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.

Prepend(Matrix3D)

Добавляет указанную матрицу в текущую матрицу.

Rotate(Quaternion)

Добавляет преобразование поворота к текущему Matrix3D.

RotateAt(Quaternion, Point3D)

Сменяет этот Matrix3D параметр о указанном Point3D.

RotateAtPrepend(Quaternion, Point3D)

Предустановка поворота по указанному центру Point3D этой Matrix3D структуры.

RotatePrepend(Quaternion)

Предустановка поворота, заданного данной QuaternionMatrix3D структурой.

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)

Преобразует указанный Point3DMatrix3D результат и возвращает результат.

Transform(Point3D[])

Преобразует указанные Point3D объекты в массиве Matrix3D.

Transform(Point4D)

Преобразует указанный Point4DMatrix3D результат и возвращает результат.

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)

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

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