Matrix Struktura
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
- 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
Wartość w pierwszym wierszu i pierwszej kolumnie tego Matrix. Aby uzyskać więcej informacji, zobacz właściwość M11.
Wartość w pierwszym wierszu i drugiej kolumnie. Aby uzyskać więcej informacji, zobacz właściwość M12.
Wartość w drugim wierszu i pierwszej kolumnie. Aby uzyskać więcej informacji, zobacz właściwość M21.
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) | |
| 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) | |
| Parse(String) |
Konwertuje reprezentację String macierzy na równoważną Matrix strukturę. |
| Prepend(Matrix) | |
| 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() | |
| 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) |
Jawne implementacje interfejsu
| Nazwa | Opis |
|---|---|
| IFormattable.ToString(String, IFormatProvider) |
Formatuje wartość bieżącego wystąpienia przy użyciu określonego formatu. |