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
- Наследование
- Атрибуты
- Реализации
Примеры
// 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 |
Изменяет эту структуру 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) |
Форматирует значение текущего экземпляра, используя указанный формат. |