Matrix Struktur
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
- 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() | |
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. |