Freigeben über


Matrix Struktur

Definition

Stellt eine 3x3 affine Transformationsmatrix dar, die für Transformationen im 2D-Raum verwendet wird.

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
Vererbung
Matrix
Attribute
Implementiert

Hinweise

Eine 3x3-Matrix wird für Transformationen in einer 2D-x-y-Ebene verwendet. Affine Transformationsmatrizen können multipliziert werden, um eine beliebige Anzahl linearer Transformationen zu bilden, z. B. Drehung und Verzerrung (Scherung), gefolgt von Übersetzung. Eine affine Transformationsmatrix hat die letzte Spalte gleich (0, 0, 1), sodass nur die Elemente in den ersten beiden Spalten angegeben werden müssen. Beachten Sie, dass Vektoren als Zeilenvektoren ausgedrückt werden, nicht als Spaltenvektoren.

Ein WPF Matrix wird mithilfe der Zeilen-Hauptreihenfolge gespeichert und weist die folgende Struktur auf:

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

Die Elemente in der letzten Zeile OffsetX und OffsetY, stellen Übersetzungswerte dar.

In Methoden und Eigenschaften wird die Transformationsmatrix in der Regel als Vektor mit nur sechs Elementen angegeben, wie folgt:

(M11, M12, , M22M21, OffsetX, OffsetY)

Obwohl Sie eine Matrix Struktur direkt zum Übersetzen einzelner Punkte oder mit einer MatrixTransform Transformation von Objekten verwenden können, bietet WPF auch eine Reihe von Klassen, mit denen Sie Objekte transformieren können, ohne direkt mit Matrizen zu arbeiten: RotateTransform, , ScaleTransform, SkewTransformund TranslateTransform.

Verwendung von XAML-Attributen

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

XAML-Werte

m11System.Double

Der Wert in der ersten Zeile und der ersten Spalte dieses Werts Matrix. Weitere Informationen finden Sie in den Ausführungen zur M11-Eigenschaft.

m12System.Double

Der Wert in der ersten Zeile und zweiten Spalte. Weitere Informationen finden Sie in den Ausführungen zur M12-Eigenschaft.

m21System.Double

Der Wert in der zweiten Zeile und der ersten Spalte. Weitere Informationen finden Sie in den Ausführungen zur M21-Eigenschaft.

m22System.Double

Der Wert in der zweiten Zeile und zweiten Spalte. Weitere Informationen finden Sie in den Ausführungen zur M22-Eigenschaft.

OffsetxSystem.Double

Der Wert in der dritten Zeile und der ersten Spalte. Weitere Informationen finden Sie in den Ausführungen zur OffsetX-Eigenschaft.

OffsetySystem.Double

Der Wert in der dritten Zeile und der zweiten Spalte. Weitere Informationen finden Sie in den Ausführungen zur OffsetY-Eigenschaft.

Konstruktoren

Name Beschreibung
Matrix(Double, Double, Double, Double, Double, Double)

Initialisiert eine neue Instanz der Matrix Struktur.

Eigenschaften

Name Beschreibung
Determinant

Ruft die Determinante dieser Matrix Struktur ab.

HasInverse

Ruft einen Wert ab, der angibt, ob diese Matrix Struktur invertierbar ist.

Identity

Ruft eine Identität Matrixab.

IsIdentity

Ruft einen Wert ab, der angibt, ob es sich bei dieser Matrix Struktur um eine Identitätsmatrix handelt.

M11

Dient zum Abrufen oder Festlegen des Werts der ersten Zeile und der ersten Spalte dieser Matrix Struktur.

M12

Dient zum Abrufen oder Festlegen des Werts der ersten Zeile und der zweiten Spalte dieser Matrix Struktur.

M21

Dient zum Abrufen oder Festlegen des Werts der zweiten Zeile und der ersten Spalte dieser Matrix Struktur.

M22

Dient zum Abrufen oder Festlegen des Werts der zweiten Zeile und der zweiten Spalte dieser Matrix Struktur.

OffsetX

Dient zum Abrufen oder Festlegen des Werts der dritten Zeile und der ersten Spalte dieser Matrix Struktur.

OffsetY

Dient zum Abrufen oder Festlegen des Werts der dritten Zeile und der zweiten Spalte dieser Matrix Struktur.

Methoden

Name Beschreibung
Append(Matrix)

Fügt die angegebene Matrix Struktur an diese Matrix Struktur an.

Equals(Matrix, Matrix)

Bestimmt, ob die beiden angegebenen Matrix Strukturen identisch sind.

Equals(Matrix)

Bestimmt, ob die angegebene Matrix Struktur mit dieser Instanz identisch ist.

Equals(Object)

Bestimmt, ob es sich bei der angegebenen Object Struktur um eine Matrix Struktur handelt, die mit dieser Matrixidentisch ist.

GetHashCode()

Gibt den Hashcode für diese Matrix Struktur zurück.

Invert()

Invertiert diese Matrix Struktur.

Multiply(Matrix, Matrix)

Multipliziert eine Struktur mit einer Matrix anderen Matrix Struktur.

Parse(String)

Konvertiert eine String Darstellung einer Matrix in die entsprechende Matrix Struktur.

Prepend(Matrix)

Stellt die angegebene Matrix Struktur dieser Matrix Struktur voran.

Rotate(Double)

Wendet eine Drehung des angegebenen Winkels über den Ursprung dieser Matrix Struktur an.

RotateAt(Double, Double, Double)

Dreht diese Matrix um den angegebenen Punkt.

RotateAtPrepend(Double, Double, Double)

Stellt eine Drehung des angegebenen Winkels am angegebenen Punkt dieser Matrix Struktur voran.

RotatePrepend(Double)

Stellt eine Drehung des angegebenen Winkels dieser Matrix Struktur voran.

Scale(Double, Double)

Fügt den angegebenen Skalierungsvektor an diese Matrix Struktur an.

ScaleAt(Double, Double, Double, Double)

Skaliert dies Matrix um den angegebenen Betrag um den angegebenen Punkt.

ScaleAtPrepend(Double, Double, Double, Double)

Stellt die angegebene Skalierung um den angegebenen Punkt dieser Matrix.

ScalePrepend(Double, Double)

Stellt den angegebenen Skalierungsvektor dieser Matrix Struktur voran.

SetIdentity()

Ändert diese Matrix Struktur in eine Identitätsmatrix.

Skew(Double, Double)

Fügt eine Schiefe der angegebenen Grad in den x- und y-Dimensionen an diese Matrix Struktur an.

SkewPrepend(Double, Double)

Stellt eine Schiefe der angegebenen Grad in den x- und y-Dimensionen dieser Matrix Struktur vor.

ToString()

Erstellt eine String Darstellung dieser Matrix Struktur.

ToString(IFormatProvider)

Erstellt eine String Darstellung dieser Matrix Struktur mit kulturspezifischen Formatierungsinformationen.

Transform(Point)

Transformiert den angegebenen Punkt um den Matrix und gibt das Ergebnis zurück.

Transform(Point[])

Transformiert die angegebenen Punkte durch diese Matrix.

Transform(Vector)

Transformiert den angegebenen Vektor durch diesen Matrix.

Transform(Vector[])

Transformiert die angegebenen Vektoren durch diese Matrix.

Translate(Double, Double)

Fügt eine Übersetzung der angegebenen Offsets an diese Matrix Struktur an.

TranslatePrepend(Double, Double)

Stellt eine Übersetzung der angegebenen Offsets in diese Matrix Struktur vor.

Operatoren

Name Beschreibung
Equality(Matrix, Matrix)

Bestimmt, ob die beiden angegebenen Matrix Strukturen identisch sind.

Inequality(Matrix, Matrix)

Bestimmt, ob die beiden angegebenen Matrix Strukturen nicht identisch sind.

Multiply(Matrix, Matrix)

Multipliziert eine Struktur mit einer Matrix anderen Matrix Struktur.

Explizite Schnittstellenimplementierungen

Name Beschreibung
IFormattable.ToString(String, IFormatProvider)

Formatiert den Wert der aktuellen Instanz mithilfe des angegebenen Formats.

Gilt für:

Weitere Informationen