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 3 × 3 affine Transformationsmatrix dar, die für Transformationen im zweidimensionalen Raum verwendet wird.
public value class Matrix
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 65536)]
struct Matrix
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
public struct Matrix
Public Structure Matrix
<Matrix .../>
- or -
<object property="m11,m12,m21,m22,offsetX,offsetY"/>
- or -
<object property="m11 m12 m21 m22 offsetX offsetY"/>
-or-
<object property="Identity"/>
- Vererbung
-
Matrix
- Attribute
Beispiele
In diesem XAML-Beispiel wird eine Matrix definiert, die Daten für eine MatrixTransform bereitstellt, die auf eine rechteckige Form angewendet wird. In diesem Fall kombiniert die Matrix einen Offset (OffsetX und OffsetY und eine Neigung (M12. Beachten Sie, dass dieser Effekt durch die Kombination von TranslateTransform und SkewTransform erzeugt werden konnte. Ob eine einzelne Matrix oder Kombinationen diskreter Transformationen verwendet werden, ist eine Frage des Codierungsstils. die Ergebnisse sind identisch.
<Rectangle Width="100" Height="100" Fill="Red">
<Rectangle.RenderTransform>
<MatrixTransform Matrix="1,0,0,1,200,0">
</MatrixTransform>
</Rectangle.RenderTransform>
</Rectangle>
Hinweise
Eine 3×3-Matrix wird für Transformationen in einer zweidimensionalen 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 hat ihre 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 und nicht als Spaltenvektoren ausgedrückt werden.
Eine Matrix wird mithilfe der Zeilen-Hauptreihenfolge gespeichert und weist die folgende Struktur auf:
M11 | M12 | 0 |
M21 | M22 | 0 |
OffsetX | OffsetY | 1 |
Die Member in der letzten Zeile, OffsetX und OffsetY, stellen Übersetzungswerte dar.
In Methoden und Eigenschaften wird die Transformationsmatrix normalerweise als Vektor mit nur sechs Elementen angegeben: (M11, M12, M21, M22, OffsetX, OffsetY)
Obwohl Sie eine Matrix-Struktur direkt zum Übersetzen einzelner Punkte oder mit einer MatrixTransform verwenden können, um Objekte zu transformieren, stellt die Windows-Runtime auch eine Reihe von Klassen bereit, die Objekte transformieren können, ohne direkt mit Matrizen zu arbeiten:
Eigenschaften einer Matrix können animiert werden (als eine oder mehrere DoubleAnimation-Animationen oder DoubleAnimationUsingKeyFrames).
Matrix ist der Eigenschaftswert für die MatrixTransform.Matrix-Eigenschaft . Verwandte Typen können für Transformationsmatrizen im dreidimensionalen Raum verwendet und dann für eine Projektion verwendet werden. Siehe Matrix3D und Matrix3DProjection.
Sprachprojektionen und Elemente von Matrix
Wenn Sie eine Microsoft .NET-Sprache (C# oder Microsoft Visual Basic) oder in Visual C++-Komponentenerweiterungen (C++/CX) verwenden, stehen in Matrix keine Datenelemente zur Verfügung, und ihre Datenmember werden als Lese-/Schreibeigenschaften und nicht als Felder verfügbar gemacht.
Wenn Sie mit C++ mithilfe der Windows-Runtime Template Library (WRL) programmieren, sind nur die Datenmemberfelder als Member von Matrix vorhanden, und Sie können die hilfsprogrammbasierten Methoden oder Eigenschaften nicht verwenden, die in der Membertabelle aufgeführt sind. WRL-Code kann auf ähnliche Hilfsprogrammmethoden zugreifen, die für die MatrixHelper-Klasse vorhanden sind.
Felder
M11 |
Der Wert der ersten Zeile und ersten Spalte dieser Matrix-Struktur. |
M12 |
Der Wert der ersten Zeile und zweiten Spalte dieser Matrixstruktur. |
M21 |
Der Wert der zweiten Zeile und ersten Spalte dieser Matrixstruktur. |
M22 |
Der Wert der zweiten Zeile und zweiten Spalte dieser Matrixstruktur. |
OffsetX |
Ruft den Wert der dritten Zeile und der ersten Spalte dieser Matrix-Struktur ab oder legt diesen fest. |
OffsetY |
Ruft den Wert der dritten Zeile und zweiten Spalte dieser Matrix-Struktur ab oder legt diesen fest. |