Matrix

Matrix class

Ersetzt die GDI+-Matrix.

public class Matrix

Konstrukteure

NameBeschreibung
Matrix()Initialisiert eine neue Instanz der Matrix-Klasse als Identitätsmatrix.
Matrix(Matrix)Erstellt eine Kopie derMatrix Klasse.
Matrix(Rectangle, Point[])Initialisiert eine neue Instanz vonMatrix Klasse in die geometrische Transformation, die durch das angegebene Rechteck und das Array von Punkten definiert ist.
Matrix(RectangleF, PointF[])Initialisiert eine neue Instanz vonMatrix Klasse in die geometrische Transformation, die durch das angegebene Rechteck und das Array von Punkten definiert ist.
Matrix(float, float, float, float, float, float)Initialisiert eine neue Instanz vonMatrix Klasse.

Eigenschaften

NameBeschreibung
Elements { get; }Ruft ein Array von Fließkommawerten ab, das die Elemente davon darstelltMatrix .
M11 { get; }Ruft das Matrixelement in der ersten Zeile der ersten Spalte ab. Stellt den Maßstab entlang der X-Achse dar.
M12 { get; }Ruft das Matrixelement in der ersten Zeile und zweiten Spalte ab. Stellt Scherung entlang der Y-Achse dar.
M21 { get; }Ruft das Matrixelement in der ersten Spalte der zweiten Zeile ab. Stellt Scherung entlang der X-Achse dar.
M22 { get; }Ruft das Matrixelement in der zweiten Zeile und zweiten Spalte ab. Stellt die Skalierung entlang der Y-Achse dar.
M31 { get; }Ruft das Matrixelement in der ersten Spalte der dritten Zeile ab. Stellt die Verschiebung entlang der X-Achse dar.
M32 { get; }Ruft das Matrixelement in der ersten Spalte der dritten Zeile ab. Stellt die Verschiebung entlang der Y-Achse dar.

Methoden

NameBeschreibung
override Equals(object)Bestimmt, ob die angegebeneObject ist gleich dieser Instanz.
GetElements()Ruft die Kopie der Matrixelemente ab.
override GetHashCode()Gibt einen Hash-Code für diese Instanz zurück.
Multiply(Matrix)Multipliziert diese Matrix mit der im Matrixparameter angegebenen Matrix unter Verwendung von (Standard) Prepend order.
Multiply(Matrix, MatrixOrder)Multipliziert diese Matrix mit der im matrix-Parameter angegebenen Matrix und in der im order-Parameter angegebenen Reihenfolge.
Reset()Setzt diese Matrix zurück, um die Elemente der Identitätsmatrix zu haben.
Rotate(float)Wendet eine Drehung im Uhrzeigersinn um einen im Winkelparameter angegebenen Betrag um den Ursprung (null x- und y-Koordinaten) für diese Matrix in der Standardreihenfolge (Prepend) an.
Rotate(float, MatrixOrder)Wendet eine Drehung im Uhrzeigersinn um einen im Winkelparameter angegebenen Betrag um den Ursprung (null x- und y-Koordinaten) für diese Matrix in der angegebenen Reihenfolge an.
RotateAt(float, PointF)Wendet eine Drehung im Uhrzeigersinn um den angegebenen Punkt auf diese Matrix in der Standardreihenfolge (Prepend) an.
RotateAt(float, PointF, MatrixOrder)Wendet eine Drehung im Uhrzeigersinn um den angegebenen Punkt auf diese Matrix in der angegebenen Reihenfolge an.
Scale(float, float)Wendet den angegebenen Skalierungsvektor (scaleX und scaleY) auf diese Matrix an, wobei (Standard) Prepend order verwendet wird.
Scale(float, float, MatrixOrder)Wendet den angegebenen Skalierungsvektor (scaleX und scaleY) darauf anMatrix unter Verwendung der angegebenen Reihenfolge.
override ToString()Gibt a zurückString die diese Instanz darstellt.
TransformPoints(PointF[])Wendet die hier dargestellte geometrische Transformation anMatrixzu einem bestimmten Array von Punkten.
Translate(float, float)Wendet den angegebenen Übersetzungsvektor darauf anMatrix using (default) Prepend order.
Translate(float, float, MatrixOrder)Wendet den angegebenen Translationsvektor in der angegebenen Reihenfolge auf diese Matrix an.
static Equals(Matrix, Matrix)Bestimmt, ob zwei Matrizen gleich sind.

Felder

NameBeschreibung
const TypeFlipDieses Flag-Bit zeigt an, dass die durch dieses Objekt definierte Transformation eine Spiegelbildumkehrung um eine Achse durchführt, die das normalerweise rechtshändige -Koordinatensystem in ein linkshändiges -System ändert, zusätzlich zu den Umwandlungen, die durch andere Flag-Bits angezeigt werden. Ein rechtshändiges Koordinatensystem ist eines, bei dem sich die positive X -Achse gegen den Uhrzeigersinn dreht, um die positive Y-Achse zu überlagern, ähnlich der Richtung, in der sich die Finger Ihrer rechten Hand krümmen, wenn Sie auf Ihren Daumen starren. Ein linkshändiges Koordinatensystem ist eines, in dem sich die positive X -Achse dreht im Uhrzeigersinn, um die positive Y-Achse ähnlich der Richtung zu überlagern, in der sich die Finger Ihrer linken Hand krümmen. Es gibt keinen mathematischen Weg, um den Winkel der ursprünglichen Spiegel- oder Spiegeltransformation zu bestimmen, da alle Winkel des Kippens bei einer entsprechenden Anpassungsdrehung identisch sind. HINWEIS: TypeFlip wurde nach GENERAL_TRANSFORM hinzugefügt war im öffentlichen -Umlauf und die Flag-Bits konnten nicht mehr bequem neu nummeriert werden, ohne eine binäre Inkompatibilität in den Outside -Code einzuführen.
const TypeGeneralRotationDieses Flag-Bit zeigt an, dass die durch dieses Objekt definierte Transformation zusätzlich zu den von anderen Flag-Bits angezeigten -Konvertierungen eine Drehung um einen beliebigen Winkel durchführt. Eine Drehung ändert die Winkel von Vektoren um den gleichen Betrag , unabhängig von der ursprünglichen Richtung des Vektors und ohne die Länge des Vektors zu ändern. Dieses Flag-Bit schließt sich gegenseitig mit dem aus
const TypeGeneralScaleEine allgemeine Skala multipliziert die Länge von Vektoren mit unterschiedlichen Beträgen in x- und y-Richtung, ohne den Winkel zwischen rechtwinkligen Vektoren zu ändern. Dieses Flag-Bit schließt sich gegenseitig mit dem TypeUniformScale-Flag aus.
const TypeGeneralTransformDiese Konstante gibt an, dass die durch dieses Objekt definierte Transformation eine willkürliche Konvertierung der Eingabekoordinaten durchführt. Wenn diese Transformation durch eine der oben genannten Konstanten klassifiziert werden kann, ist der Typ entweder die Konstante TypeIdentity oder eine Kombination des entsprechenden Flags Bits für die verschiedenen Koordinaten -Konvertierungen, die diese Transformation durchführt.
const TypeIdentityEine Identitätstransformation ist eine, bei der die Ausgabekoordinaten immer die gleichen wie die Eingabekoordinaten sind. Wenn diese Transformation etwas anderes als die Identitätstransformation ist, ist der Typ entweder die Konstante GENERAL_TRANSFORM oder eine Kombination der entsprechenden Flag-Bits für die verschiedenen Koordinaten -Konvertierungen, die diese Transformation durchführt.
const TypeMaskRotationDiese Konstante ist eine Bitmaske für eines der Rotations-Flag-Bits.
const TypeMaskScaleDiese Konstante ist eine Bitmaske für jedes der Skalierungs-Flag-Bits.
const TypeQuadrantRotationDieses Flag-Bit zeigt an, dass die durch dieses Objekt definierte Transformation eine Quadrantendrehung um ein Vielfaches von 90 Grad in zusätzlich zu den durch andere Flag-Bits angezeigten Konvertierungen durchführt. Eine Drehung ändert die Winkel von Vektoren unabhängig von der ursprünglichen Richtung um denselben Betrag des Vektors und ohne die Länge des Vektors zu ändern. Dieses Flag-Bit schließt sich gegenseitig mit dem TypeGeneralRotation-Flag aus.
const TypeTranslationEine Translation verschiebt die Koordinaten um einen konstanten Betrag in x und y, ohne die Länge oder den Winkel von Vektoren zu ändern.
const TypeUniformScaleEine einheitliche Skalierung multipliziert die Länge der Vektoren mit dem gleichen Betrag in x- und y-Richtung, ohne den Winkel zwischen Vektoren zu ändern. Dieses Flag-Bit schließt sich gegenseitig mit dem TypeGeneralScale-Flag aus.

Bemerkungen

Die meisten Algorithmen stammen aus Suns AffineTransform.java. Javas Namen für Matrixelemente, die intern verwendet werden. Zuordnung von Java-Namen zu .net-Namen zur Beschreibung: m00 M11 Scale X m10 M12 Shear Y m01 M21 Shear X m11 M201 Shear X m01 M201 Y_ m03 Scaled Y_ m03 X übersetzen m12 M32 Y übersetzen

Siehe auch