Matrix Структура
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет матрицу аффинного преобразования 3 x 3, используемую для преобразований в двумерном пространстве.
public value class Matrix : IFormattable
[System.ComponentModel.TypeConverter(typeof(System.Windows.Media.MatrixConverter))]
[System.Serializable]
public struct Matrix : IFormattable
[System.ComponentModel.TypeConverter(typeof(System.Windows.Media.MatrixConverter))]
public struct Matrix : IFormattable
[<System.ComponentModel.TypeConverter(typeof(System.Windows.Media.MatrixConverter))>]
[<System.Serializable>]
type Matrix = struct
interface IFormattable
[<System.ComponentModel.TypeConverter(typeof(System.Windows.Media.MatrixConverter))>]
type Matrix = struct
interface IFormattable
Public Structure Matrix
Implements IFormattable
- Наследование
- Атрибуты
- Реализации
Комментарии
Матрица 3x3 используется для преобразований в двухмерной плоскости x-y. Матрицы аффинных преобразований можно умножать в целях формирования любого количества таких линейных преобразований, как поворот и наклон (сдвиг), вслед за которыми выполняется перенос. Последний столбец матрицы аффинного преобразования равен (0, 0, 1), поэтому необходимо указать только члены в первых двух столбцах. Обратите внимание, что векторы выражаются в виде векторов строк, а не столбцов.
WPF Matrix хранится в порядке основной строки и имеет следующую структуру:
M11 | M12 | 0 |
M21 | M22 | 0 |
OffsetX | OffsetY | 1 |
Члены в последней строке и OffsetXOffsetYпредставляют значения перевода.
В методах и свойствах матрица преобразования обычно указывается в виде вектора с шестью элементами следующим образом:
(M11, M12, M21, M22, OffsetX, OffsetY)
Хотя вы можете использовать структуру Matrix напрямую для преобразования отдельных точек или с MatrixTransform для преобразования объектов, WPF также предоставляет набор классов, которые позволяют преобразовывать объекты без непосредственной работы с матрицами: RotateTransform, ScaleTransform, SkewTransformи TranslateTransform.
Использование атрибута XAML
<object property="m11, m12, m21, m22, offsetX, offsetY"/>
- or -
<object property="Identity"/>
Значения XAML
m11
System.Double
Значение в первой строке и первом столбце данного объекта Matrix. Дополнительные сведения см. в описании свойства M11.
m12
System.Double
Значение в первой строке и втором столбце. Дополнительные сведения см. в описании свойства M12.
m21
System.Double
Значение во второй строке и первом столбце. Дополнительные сведения см. в описании свойства M21.
m22
System.Double
Значение во второй строке и втором столбце. Дополнительные сведения см. в описании свойства M22.
offsetX
System.Double
Значение в третьей строке и первом столбце. Дополнительные сведения см. в описании свойства OffsetX.
offsetY
System.Double
Значение в третьей строке и втором столбце. Дополнительные сведения см. в описании свойства OffsetY.
Конструкторы
Matrix(Double, Double, Double, Double, Double, Double) |
Инициализирует новый экземпляр структуры Matrix. |
Свойства
Determinant |
Получает определитель этой структуры Matrix. |
HasInverse |
Получает значение, указывающее, является ли эта структура Matrix обратимой. |
Identity |
Получает единичную Matrix. |
IsIdentity |
Получает значение, указывающее, является ли эта структура Matrix единичной матрицей. |
M11 |
Получает или задает значение в первой строке и первом столбце данной структуры Matrix. |
M12 |
Получает или задает значение в первой строке и втором столбце данной структуры Matrix. |
M21 |
Получает или задает значение во второй строке и первом столбце данной структуры Matrix. |
M22 |
Получает или задает значение во второй строке и втором столбце данной структуры Matrix. |
OffsetX |
Получает или задает значение в третьей строке и первом столбце данной структуры Matrix. |
OffsetY |
Получает или задает значение в третьей строке и втором столбце данной структуры Matrix. |
Методы
Append(Matrix) |
Добавляет заданную структуру Matrix в конец данной структуры Matrix. |
Equals(Matrix) |
Определяет, идентична ли указанная структура Matrix данному экземпляру. |
Equals(Matrix, Matrix) |
Определяет, совпадают ли две указанные структуры Matrix. |
Equals(Object) |
Определяет, является ли указанный Object структурой Matrix, идентичной данной структуре Matrix. |
GetHashCode() |
Возвращает хэш-код данной структуры Matrix. |
Invert() |
Преобразует данную структуру Matrix. |
Multiply(Matrix, Matrix) | |
Parse(String) |
Преобразует представление в виде String матрицы в эквивалентную структуру Matrix. |
Prepend(Matrix) |
Добавляет заданную структуру Matrix в начало данной структуры Matrix. |
Rotate(Double) |
Применяет поворот на указанный угол относительно начала координат к этой структуре Matrix. |
RotateAt(Double, Double, Double) |
Поворачивает эту матрицу относительно заданной точки. |
RotateAtPrepend(Double, Double, Double) |
Добавляет поворот на заданный угол относительно заданной точки в начало этой структуры Matrix. |
RotatePrepend(Double) |
Добавляет поворот на заданный угол в начало этой структуры Matrix. |
Scale(Double, Double) |
Добавляет заданный вектор масштабирования в конец данной структуры Matrix. |
ScaleAt(Double, Double, Double, Double) |
Масштабирует эту структуру Matrix на заданную величину относительно заданной точки. |
ScaleAtPrepend(Double, Double, Double, Double) |
Добавляет заданное масштабирование относительно заданной точки в начало данной структуры Matrix. |
ScalePrepend(Double, Double) |
Добавляет заданный вектор масштабирования в начало данной структуры Matrix. |
SetIdentity() |
Преобразует эту структуру Matrix в единичную матрицу. |
Skew(Double, Double) |
Прибавляет отклонение на заданное значение по осям X и Y в конец данной структуры Matrix. |
SkewPrepend(Double, Double) |
Добавляет отклонение на заданное значение по осям X и Y в начало данной структуры Matrix. |
ToString() | |
ToString(IFormatProvider) |
Создает представление в виде String данной структуры Matrix с использованием сведений о форматировании, связанных с языком и региональными параметрами. |
Transform(Point) |
Преобразует заданную точку с использованием Matrix и возвращает результат. |
Transform(Point[]) |
Преобразует заданные точки с использованием заданной структуры Matrix. |
Transform(Vector) |
Преобразует заданный вектор с использованием данной структуры Matrix. |
Transform(Vector[]) |
Преобразует заданные векторы с использованием данной структуры Matrix. |
Translate(Double, Double) |
Добавляет перенос на заданное смещение в конец этой структуры Matrix. |
TranslatePrepend(Double, Double) |
Добавляет перенос на заданное смещение в начало в этой структуры Matrix. |
Операторы
Equality(Matrix, Matrix) |
Определяет, совпадают ли две указанные структуры Matrix. |
Inequality(Matrix, Matrix) |
Проверяет, являются ли две заданные структуры Matrix не идентичными. |
Multiply(Matrix, Matrix) |
Явные реализации интерфейса
IFormattable.ToString(String, IFormatProvider) |
Форматирует значение текущего экземпляра, используя указанный формат. |