Matrix Структура
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет матрицу аффинного преобразования 3x3, используемую для преобразований в 2D-пространстве.
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 используется для преобразований в плоскости 2D x-y. Матрицы аффинного преобразования можно перемножать для формирования любого количества линейных преобразований, таких как поворот и скос (сдвиг), за которыми следует перенос. Матрица аффинного преобразования имеет свой окончательный столбец равным (0, 0, 1), поэтому необходимо указать только элементы в первых двух столбцах. Обратите внимание, что векторы выражаются как векторы строк, а не векторы столбцов.
WPF Matrix хранится с помощью порядка строк и имеет следующую структуру:
| Столбец 1 | Столбец 2 | Столбец 3 |
|---|---|---|
| M11 | M12 | 0 |
| M21 | M22 | 0 |
| OffsetX | OffsetY | 1 |
Элементы в последней строке OffsetX и OffsetYпредставляют значения перевода.
В методах и свойствах матрица преобразования обычно указывается в качестве вектора только с шестью элементами, как показано ниже.
(M11, , M12, M22M21, OffsetXOffsetY)
Хотя вы можете использовать Matrix структуру непосредственно для перевода отдельных точек или для MatrixTransform преобразования объектов, WPF также предоставляет набор классов, которые позволяют преобразовывать объекты без работы непосредственно с матрицами: RotateTransform, ScaleTransform, SkewTransformи TranslateTransform.
Использование атрибута XAML
<object property="m11, m12, m21, m22, offsetX, offsetY"/>
- or -
<object property="Identity"/>
Значения XAML
Значение в первой строке и первом столбце этого Matrixстолбца. Дополнительные сведения см. в свойстве M11.
Значение в первой строке и втором столбце. Дополнительные сведения см. в свойстве M12.
Значение во второй строке и первом столбце. Дополнительные сведения см. в свойстве M21.
Значение во второй строке и втором столбце. Дополнительные сведения см. в свойстве M22.
offsetXSystem.Double
Значение в третьей строке и первом столбце. Дополнительные сведения см. в свойстве OffsetX.
смещение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) |
Определяет, идентичны ли две указанные Matrix структуры. |
| Equals(Matrix) |
Определяет, идентична ли указанная Matrix структура этому экземпляру. |
| Equals(Object) |
Определяет, является ли указанный структурой ObjectMatrix , идентичной этому 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) |
Форматирует значение текущего экземпляра с помощью указанного формата. |