Udostępnij za pośrednictwem


Matrix Struktura

Definicja

Reprezentuje macierz przekształcania 3x3 affine używaną do przekształceń w przestrzeni 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
Dziedziczenie
Matrix
Atrybuty
Implementuje

Uwagi

Macierz 3x3 służy do przekształceń w płaszczyźnie 2D x-y. Macierze przekształceń afinicznych można mnożyć, aby tworzyć dowolną liczbę przekształceń liniowych, takich jak obrót i siekanie, a następnie translację. Macierz przekształcenia affine ma końcową kolumnę równą (0, 0, 1), więc należy określić tylko elementy członkowskie w dwóch pierwszych kolumnach. Należy pamiętać, że wektory są wyrażane jako wektory wierszy, a nie wektory kolumn.

WPF Matrix jest przechowywany przy użyciu kolejności wierszy głównych i ma następującą strukturę:

Kolumna 1 Kolumna 2 Kolumna 3
M11 M12 0
M21 M22 0
OffsetX OffsetY 1

Elementy członkowskie w ostatnim wierszu OffsetX i OffsetY, reprezentują wartości tłumaczenia.

W metodach i właściwości macierz przekształcania jest zwykle określana jako wektor z zaledwie sześcioma elementami członkowskimi w następujący sposób:

(M11, , M21M12, M22, , OffsetYOffsetX)

Chociaż można użyć Matrix struktury bezpośrednio do tłumaczenia pojedynczych punktów lub MatrixTransform za pomocą obiektu do przekształcania obiektów, WPF udostępnia również zestaw klas, które umożliwiają przekształcanie obiektów bez bezpośredniej pracy z macierzami: RotateTransform, ScaleTransform, SkewTransformi TranslateTransform.

Użycie atrybutu XAML

<object property="m11, m12, m21, m22, offsetX, offsetY"/>
- or -
<object property="Identity"/>

Wartości XAML

m11System.Double

Wartość w pierwszym wierszu i pierwszej kolumnie tego Matrix. Aby uzyskać więcej informacji, zobacz właściwość M11.

m12System.Double

Wartość w pierwszym wierszu i drugiej kolumnie. Aby uzyskać więcej informacji, zobacz właściwość M12.

m21System.Double

Wartość w drugim wierszu i pierwszej kolumnie. Aby uzyskać więcej informacji, zobacz właściwość M21.

m22System.Double

Wartość w drugim wierszu i drugiej kolumnie. Aby uzyskać więcej informacji, zobacz właściwość M22.

przesunięcieXSystem.Double

Wartość w trzecim wierszu i pierwszej kolumnie. Aby uzyskać więcej informacji, zobacz właściwość OffsetX.

offsetYSystem.Double

Wartość w trzecim wierszu i drugiej kolumnie. Aby uzyskać więcej informacji, zobacz właściwość OffsetY.

Konstruktory

Nazwa Opis
Matrix(Double, Double, Double, Double, Double, Double)

Inicjuje nowe wystąpienie Matrix struktury.

Właściwości

Nazwa Opis
Determinant

Pobiera determinant tej Matrix struktury.

HasInverse

Pobiera wartość wskazującą, czy ta Matrix struktura jest niewzględna.

Identity

Pobiera tożsamość Matrix.

IsIdentity

Pobiera wartość wskazującą, czy ta Matrix struktura jest macierzą tożsamości.

M11

Pobiera lub ustawia wartość pierwszego wiersza i pierwszej kolumny tej Matrix struktury.

M12

Pobiera lub ustawia wartość pierwszego wiersza i drugiej kolumny tej Matrix struktury.

M21

Pobiera lub ustawia wartość drugiego wiersza i pierwszej kolumny tej Matrix struktury.

M22

Pobiera lub ustawia wartość drugiego wiersza i drugiej kolumny tej Matrix struktury.

OffsetX

Pobiera lub ustawia wartość trzeciego wiersza i pierwszej kolumny tej Matrix struktury.

OffsetY

Pobiera lub ustawia wartość trzeciego wiersza i drugiej kolumny tej Matrix struktury.

Metody

Nazwa Opis
Append(Matrix)

Dołącza określoną Matrix strukturę do tej Matrix struktury.

Equals(Matrix, Matrix)

Określa, czy dwie określone Matrix struktury są identyczne.

Equals(Matrix)

Określa, czy określona Matrix struktura jest identyczna z tym wystąpieniem.

Equals(Object)

Określa, czy określona Object jest strukturą identyczną z tym Matrixelementem Matrix .

GetHashCode()

Zwraca kod skrótu dla tej Matrix struktury.

Invert()

Odwraca tę Matrix strukturę.

Multiply(Matrix, Matrix)

Matrix Mnoży strukturę przez inną Matrix strukturę.

Parse(String)

Konwertuje reprezentację String macierzy na równoważną Matrix strukturę.

Prepend(Matrix)

Poprzedza określoną Matrix strukturę tą Matrix strukturą.

Rotate(Double)

Stosuje obrót określonego kąta o pochodzeniu tej Matrix struktury.

RotateAt(Double, Double, Double)

Obraca tę macierz o określonym punkcie.

RotateAtPrepend(Double, Double, Double)

Poprzedza rotację określonego kąta w określonym punkcie do tej Matrix struktury.

RotatePrepend(Double)

Poprzedza rotację określonego kąta do tej Matrix struktury.

Scale(Double, Double)

Dołącza określony wektor skalowania do tej Matrix struktury.

ScaleAt(Double, Double, Double, Double)

Skaluje to Matrix o określoną kwotę o określony punkt.

ScaleAtPrepend(Double, Double, Double, Double)

Poprzedza określoną skalę o określonym punkcie tego Matrixelementu .

ScalePrepend(Double, Double)

Poprzedza określony wektor skalowania do tej Matrix struktury.

SetIdentity()

Zmienia tę Matrix strukturę w macierz tożsamości.

Skew(Double, Double)

Dołącza niesymetryczność określonych stopni w wymiarach x i y do tej Matrix struktury.

SkewPrepend(Double, Double)

Poprzedza niesymetryczność określonych stopni w wymiarach x i y do tej Matrix struktury.

ToString()

Tworzy reprezentację String tej Matrix struktury.

ToString(IFormatProvider)

Tworzy reprezentację String tej Matrix struktury z informacjami o formatowaniu specyficznym dla kultury.

Transform(Point)

Przekształca określony punkt przez Matrix element i zwraca wynik.

Transform(Point[])

Przekształca określone punkty przez ten Matrixelement .

Transform(Vector)

Przekształca określony wektor przez ten Matrixelement .

Transform(Vector[])

Przekształca określone wektory przez ten Matrixelement .

Translate(Double, Double)

Dołącza tłumaczenie określonych przesunięć do tej Matrix struktury.

TranslatePrepend(Double, Double)

Poprzedza tłumaczenie określonych przesunięć na tę Matrix strukturę.

Operatory

Nazwa Opis
Equality(Matrix, Matrix)

Określa, czy dwie określone Matrix struktury są identyczne.

Inequality(Matrix, Matrix)

Określa, czy dwie określone Matrix struktury nie są identyczne.

Multiply(Matrix, Matrix)

Matrix Mnoży strukturę przez inną Matrix strukturę.

Jawne implementacje interfejsu

Nazwa Opis
IFormattable.ToString(String, IFormatProvider)

Formatuje wartość bieżącego wystąpienia przy użyciu określonego formatu.

Dotyczy

Zobacz też