Matrix Struktur

Definition

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 Beispiel-XAML wird eine Matrix definiert, die Daten für eine MatrixTransform bereitstellt, die auf ein rechteckiges Shape angewendet wird. In diesem Fall kombiniert die Matrix einen Offset (OffsetX und OffsetY und eine Schiefe (M12). Beachten Sie, dass dieser Effekt durch die Kombination einer TranslateTransform und einer SkewTransform erzeugt worden sein könnte. Ob eine einzelne Matrix oder Kombinationen von diskreten Transformationen verwendet werden sollen, 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 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.

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

M11M120
M21M220
OffsetXOffsetY1

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: (M11, M12, M21, M22, OffsetX, OffsetY)

Obwohl Sie eine Matrixstruktur direkt zum Übersetzen einzelner Punkte oder mit einer MatrixTransform zum Transformieren von Objekten verwenden können, 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 mindestens eine DoubleAnimation-Animation 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 der Matrix

Wenn Sie eine Microsoft .NET Sprache (C#) verwenden, steht Matrix nicht-Datenmember zur Verfügung, und die zugehörigen Datenmember werden als Lese-/Schreibeigenschaften und nicht als Felder verfügbar gemacht.

Wenn Sie mit C++ mit der Windows-Runtime Template Library (WRL) programmieren, sind nur die Datenmemberfelder als Elemente der Matrix vorhanden, und Sie können die in der Membertabelle aufgeführten Hilfsmethoden oder -eigenschaften nicht verwenden. WRL-Code kann auf ähnliche Hilfsmethoden zugreifen, die in der MatrixHelper-Klasse vorhanden sind.

Felder

Name Beschreibung
M11

Der Wert der ersten Zeile und der ersten Spalte dieser Matrixstruktur.

M12

Der Wert der ersten Zeile und der zweiten Spalte dieser Matrixstruktur.

M21

Der Wert der zweiten Zeile und der ersten Spalte dieser Matrixstruktur.

M22

Der Wert der zweiten Zeile und der zweiten Spalte dieser Matrixstruktur.

OffsetX

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

OffsetY

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

Gilt für: