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


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
Наследование
Matrix
Атрибуты
Реализации

Комментарии

Матрица 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)

Умножает структуру 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()

Создает представление String для данной структуры Matrix.

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)

Умножает структуру Matrix на другую структуру Matrix.

Явные реализации интерфейса

IFormattable.ToString(String, IFormatProvider)

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

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

См. также раздел