Matrix Structure

Stellt eine affine 3x3-Transformationsmatrix für Transformationen im zweidimensionalen Raum dar.

Syntax


public struct Matrix


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

XAML Values

m11

Der numerische Wert in der ersten Zeile und ersten Spalte dieser Matrix.

m12

Der numerische Wert in der ersten Zeile und zweiten Spalte.

m21

Der numerische Wert in der zweiten Zeile und ersten Spalte.

m22

Der numerische Wert in der zweiten Zeile und zweiten Spalte.

offsetX

Der numerische Wert in der dritten Zeile und ersten Spalte.

offsetY

Der numerische Wert in der dritten Zeile und zweiten Spalte.

Identity

Der literale Identity-Wert.

Attribute

[Version(0x06020000)]
[WebHostHidden()]

Member

MatrixStruktur hat diese Membertypen:

Konstruktoren

MatrixStruktur hat diese Konstruktoren.

KonstruktorBeschreibung
Matrix Initializes a Matrix structure.

 

Felder

MatrixStruktur hat diese Felder.

FeldDatentypBeschreibung
M11

System.Double [.NET] | float64 [C++]

Der Wert der ersten Zeile und ersten Spalte der Matrix-Struktur.

M12

System.Double [.NET] | float64 [C++]

Der Wert der ersten Zeile und zweiten Spalte der Matrix-Struktur.

M21

System.Double [.NET] | float64 [C++]

Der Wert der zweiten Zeile und ersten Spalte der Matrix-Struktur.

M22

System.Double [.NET] | float64 [C++]

Der Wert der zweiten Zeile und zweiten Spalte der Matrix-Struktur.

OffsetX

System.Double [.NET] | float64 [C++]

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

OffsetY

System.Double [.NET] | float64 [C++]

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

 

Methoden

The Matrix Struktur hat diese Methoden. Es erbt auch Methoden von Object Klasse.

MethodeBeschreibung
Equals(Matrix) [C#, VB]Compares two Matrix structures for equality.
Equals(Object) [C#, VB]Determines whether the specified object is equal to a Matrix.
GetHashCode [C#, VB]Gets a hash code for this object.
ToString [C#, VB]Converts a Matrix to a String representation.
ToString(IFormatProvider) [C#, VB]Creates a String representation of this Matrix .
Transform Transforms the specified point by the Matrix and returns the result.

 

Operatoren

MatrixStruktur hat diese Operatoren.

OperatorBeschreibung
Equality Compares two Matrix structures for equality.
Inequality Compares two Matrix structures for inequality.

 

Eigenschaften

Der MatrixStruktur hat diese Eigenschaften.

EigenschaftZugriffstypBeschreibung

Identity

SchreibgeschütztGets an identity Matrix.

IsIdentity

SchreibgeschütztGets a value that indicates whether this Matrix structure is an identity matrix.

M11

Lese-/SchreibzugriffGets or sets the value of the first row and first column of this Matrix structure.

M12

Lese-/SchreibzugriffGets or sets the value of the first row and second column of this Matrix structure.

M21

Lese-/SchreibzugriffGets or sets the value of the second row and first column of this Matrix structure.

M22

Lese-/SchreibzugriffGets or sets the value of the second row and second column of this Matrix structure.

OffsetX

Lese-/SchreibzugriffGets or sets the value of the third row and first column of this Matrix structure.

OffsetY

Lese-/SchreibzugriffGets or sets the value of the third row and second column of this Matrix structure.

 

Hinweise

Für Transformationen in einer zweidimensionalen x-y-Ebene wird eine 3 x 3-Matrix verwendet. Affine Transformationsmatrizen können multipliziert werden, um eine beliebige Anzahl linearer Transformationen, wie beispielsweise Drehung und Neigung (Scherung), mit anschließender Verschiebung zu erzeugen. Die letzte Spalte einer affinen Transformationsmatrix ist gleich (0, 0, 1). Daher müssen nur die Member in den ersten beiden Spalten angegeben werden. Beachten Sie, dass Vektoren als Zeilenvektoren und nicht als Spaltenvektoren angegeben werden.

Eine Matrix wird in zeilengerichteter Reihenfolge gespeichert und verfügt über die folgende Struktur:

M11M120
M21M220
OffsetXOffsetY1

 

Die Member OffsetX und OffsetY in der letzten Zeile stellen die Verschiebungswerte dar.

In Methoden und Eigenschaften wird die Transformationsmatrix i. d. R. als Vektor mit nur sechs Membern wie folgt angegeben: (M11, M12, M21, M22, OffsetX, OffsetY)

Sie können zwar eine Matrix-Struktur direkt verwenden, um für einzelne Punkte eine Translation auszuführen oder zusammen mit MatrixTransform, um Objekte zu transformieren, Windows-Runtime stellt jedoch auch einen Satz von Klassen bereit, mit denen Sie Objekte transformieren können, ohne direkt mit Matrizen zu arbeiten:

Die Eigenschaften eines Matrix-Elements kann (als mindestens eine DoubleAnimation- Animation oder als DoubleAnimationUsingKeyFrames) animiert werden.

Matrix ist der Eigenschaftswert für die MatrixTransform.Matrix-Eigenschaft. Verwandte Typen können für Transformationsmatrizen im dreidimensionalen Raum und dann für eine Projektion verwendet werden. Siehe Matrix3D und Matrix3DProjection.

Sprachprojektionen und Member der Matrix

Wenn Sie eine Microsoft .NET-Sprache verwenden (C# oder Microsoft Visual Basic) oder in Visual C++ Komponentenerweiterungen (C++/CX), sind für die Matrix Nicht-Datenmember verfügbar, und ihre Datenmember werden nicht als Felder, sondern als Eigenschaften mit Lese-/Schreibzugriff verfügbar gemacht.

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

Beispiele

Dieses XAML-Beispiel definiert eine Matrix, die Daten für eine MatrixTransform-Methode 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 der gleiche Effekt durch Kombination einer TranslateTransform und einer SkewTransform erzeugt werden könnte. Ob Sie eine einzelne Matrix verwenden oder Kombinationen eigenständiger Transformationen, hängt vom Codierungsstil ab. Die Ergebnisse sind in beiden Fällen identisch.


<Rectangle Width="60" Height="60" Fill="Blue">
    <Rectangle.RenderTransform>
        <MatrixTransform>
            <MatrixTransform.Matrix >

                <!-- This matrix transforms the x,y position of
                     the rectangle and skews it. -->
                <Matrix OffsetX="30" OffsetY="100" M12="0.5" />
            </MatrixTransform.Matrix>
        </MatrixTransform>
    </Rectangle.RenderTransform>

</Rectangle>


Anforderungen

Mindestens unterstützter Client

Windows 8

Mindestens unterstützter Server

Windows Server 2012

Namespace

Windows.UI.Xaml.Media
Windows::UI::Xaml::Media [C++]

Metadaten

Windows.winmd
Platform.winmd

Assembly

System.Runtime.WindowsRuntime.UI.Xaml.dll

 

 

Anzeigen:
© 2014 Microsoft