Matrix Struktur

Definition

Stellt eine affine 3x3-Transformationsmatrix dar, die für Transformationen im zweidimensionalen 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 Transformationsmatrizes können multipliziert werden und so eine Reihe linearer Transformationen ergeben, z. B. Drehen und Neigen (Scheren), gefolgt von Übersetzen. Eine affine Transformationsmatrix weist ihre endgültige Spalte gleich (0, 0, 1) auf, sodass nur die Elemente in den ersten beiden Spalten angegeben werden müssen. Beachten Sie, dass Vektoren als Zeilenvektoren und nicht als Spaltenvektoren ausgedrückt werden.

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

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, M21, M22, OffsetX, OffsetY)

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

Verwendung von XAML-Attributen

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

XAML-Werte

m11
System.Double

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

m12
System.Double

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

m21
System.Double

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

m22
System.Double

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

Offsetx
System.Double

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

Offsety
System.Double

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

Konstruktoren

Matrix(Double, Double, Double, Double, Double, Double)

Initialisiert eine neue Instanz der Matrix-Struktur.

Eigenschaften

Determinant

Ruft die Determinante der Matrix-Struktur ab.

HasInverse

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

Identity

Ruft eine Identitäts-Matrix ab.

IsIdentity

Ruft einen Wert ab, der angibt, ob die Matrix-Struktur eine Identitätsmatrix ist.

M11

Ruft den Wert der ersten Zeile und ersten Spalte der Matrix-Struktur ab oder legt diesen fest.

M12

Ruft den Wert der ersten Zeile und zweiten Spalte der Matrix-Struktur ab oder legt diesen fest.

M21

Ruft den Wert der zweiten Zeile und ersten Spalte der Matrix-Struktur ab oder legt diesen fest.

M22

Ruft den Wert der zweiten Zeile und zweiten Spalte der Matrix-Struktur ab oder legt diesen fest.

OffsetX

Ruft den Wert der dritten Zeile und ersten Spalte der Matrix-Struktur ab oder legt diesen fest.

OffsetY

Ruft den Wert der dritten Zeile und zweiten Spalte der Matrix-Struktur ab oder legt diesen fest.

Methoden

Append(Matrix)

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

Equals(Matrix)

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

Equals(Matrix, Matrix)

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

Equals(Object)

Bestimmt, ob das angegebene Object eine Matrix-Struktur ist, die mit der Matrix identisch ist.

GetHashCode()

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

Invert()

Invertiert die Matrix-Struktur.

Multiply(Matrix, Matrix)

Multipliziert eine Matrix-Struktur mit einer anderen Matrix-Struktur.

Parse(String)

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

Prepend(Matrix)

Stellt dieser Matrix-Struktur die angegebene Matrix-Struktur voran.

Rotate(Double)

Wendet eine Drehung im angegebenen Winkel um den Ursprung dieser Matrix-Struktur an.

RotateAt(Double, Double, Double)

Dreht die Matrix um den angegebenen Punkt.

RotateAtPrepend(Double, Double, Double)

Stellt der Matrix-Struktur eine Drehung um den angegebenen Winkel an dem angegebenen Punkt voran.

RotatePrepend(Double)

Stellt dieser Matrix-Struktur eine Drehung mit dem angegebenen Winkel voran.

Scale(Double, Double)

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

ScaleAt(Double, Double, Double, Double)

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

ScaleAtPrepend(Double, Double, Double, Double)

Stellt der Matrix die angegebene Skalierung auf dem angegebenen Punkt voran.

ScalePrepend(Double, Double)

Stellt der Matrix-Struktur den angegebenen Skalierungsvektor voran.

SetIdentity()

Ändert die Matrix-Struktur in eine Identitätsmatrix.

Skew(Double, Double)

Fügt an die Matrix-Struktur eine Neigung mit den angegebenen Grad in der x- und y-Dimension an.

SkewPrepend(Double, Double)

Stellt der Matrix-Struktur eine Neigung mit den angegebenen Grad in der x- und y-Dimension voran.

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 mit der Matrix und gibt das Ergebnis zurück.

Transform(Point[])

Transformiert die angegebenen Punkte mit dieser Matrix.

Transform(Vector)

Transformiert den angegebenen Vektor mit dieser Matrix.

Transform(Vector[])

Transformiert die angegebenen Vektoren mit dieser Matrix.

Translate(Double, Double)

Fügt an die Matrix-Struktur eine Verschiebung um die angegebenen Offsets an.

TranslatePrepend(Double, Double)

Stellt der Matrix-Struktur eine Verschiebung um die angegebenen Offsets voran.

Operatoren

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 Matrix-Struktur mit einer anderen Matrix-Struktur.

Explizite Schnittstellenimplementierungen

IFormattable.ToString(String, IFormatProvider)

Formatiert den Wert der aktuellen Instanz mit dem angegebenen Format.

Gilt für

Siehe auch