Бөлісу құралы:


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

Комментарии

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

m11System.Double

Значение в первой строке и первом столбце этого Matrixстолбца. Дополнительные сведения см. в свойстве M11.

m12System.Double

Значение в первой строке и втором столбце. Дополнительные сведения см. в свойстве M12.

m21System.Double

Значение во второй строке и первом столбце. Дополнительные сведения см. в свойстве M21.

m22System.Double

Значение во второй строке и втором столбце. Дополнительные сведения см. в свойстве 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)

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

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

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

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