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
- Наследование
- Атрибуты
- Реализации
Примеры
// 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
Значение в первой строке и первом столбце этого 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.
смещение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 | |
| 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) | |
| 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[]) | |
| Transform(Point4D) |
Преобразует указанный Point4DMatrix3D результат и возвращает результат. |
| Transform(Point4D[]) |
Преобразует указанные Point4D объекты в массиве Matrix3D и возвращает результат. |
| Transform(Vector3D) | |
| 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) |
Форматирует значение текущего экземпляра с помощью указанного формата. |