Matrix Matrix Matrix Matrix Class

Definition

Kapselt eine affine 3 x 3-Matrix ein, die eine geometrische Transformation darstellt.Encapsulates a 3-by-3 affine matrix that represents a geometric transform. Diese Klasse kann nicht vererbt werden.This class cannot be inherited.

public ref class Matrix sealed : MarshalByRefObject, IDisposable
public sealed class Matrix : MarshalByRefObject, IDisposable
type Matrix = class
    inherit MarshalByRefObject
    interface IDisposable
Public NotInheritable Class Matrix
Inherits MarshalByRefObject
Implements IDisposable
Vererbung
Implementiert

Hinweise

In GDI+GDI+ können Sie eine affine Transformation in speichern eine Matrix Objekt.In GDI+GDI+ you can store an affine transformation in a Matrix object. Da immer ist der dritte Spalte der eine Matrix, die eine affine Transformation darstellt (0, 0, 1), Sie nur die sechs Zahlen in den ersten beiden Spalten angeben, wenn Sie erstellen eine Matrix Objekt.Because the third column of a matrix that represents an affine transformation is always (0, 0, 1), you specify only the six numbers in the first two columns when you construct a Matrix object. Die Anweisung Matrix myMatrix = new Matrix(0, 1, -1, 0, 3, 4) erstellt die Matrix, die in der folgenden Abbildung dargestellt.The statement Matrix myMatrix = new Matrix(0, 1, -1, 0, 3, 4) constructs the matrix shown in the following figure.

TransformationenTransformations

Zusammengesetzte TransformationenComposite Transformations

Eine zusammengesetzte Transformation ist eine Sequenz von Transformationen gefolgt von den anderen.A composite transformation is a sequence of transformations, one followed by the other. Beachten Sie die Matrizen und Transformationen in der folgenden Liste:Consider the matrices and transformations in the following list:

Matrix AMatrix A 90 Grad drehenRotate 90 degrees
Matrix BMatrix B Um den Faktor 2 in der X-Richtung skaliertScale by a factor of 2 in the x direction
Matrix CMatrix C 3 Einheiten in der y-Richtung verschiebenTranslate 3 units in the y direction

Wenn wir beginnen mit der Punkt (2, 1) -, dargestellt durch die Matrix [2-1-1] - und mit A, B klicken Sie dann multiplizieren, wird dann C, der Punkt (2, 1) die drei Transformationen in der aufgeführten Reihenfolge unterzogen werden.If we start with the point (2, 1) - represented by the matrix [2 1 1] - and multiply by A, then B, then C, the point (2, 1) will undergo the three transformations in the order listed.

[2 1 1]ABC = [-2 5 1][2 1 1]ABC = [-2 5 1]

Stattdessen als die drei Teile der zusammengesetzten Transformation in drei separaten Matrizen zu speichern, Multiplizieren Sie A, B und C miteinander um eine einzelne 3 x 3-Matrix abzurufen, die die gesamte zusammengesetzte Transformation gespeichert.Rather than store the three parts of the composite transformation in three separate matrices, you can multiply A, B, and C together to get a single 3×3 matrix that stores the entire composite transformation. Nehmen wir an ABC = D. Ein Punkt, multipliziert mit D gibt dann das gleiche Ergebnis wie einen Punkt, multipliziert mit ein, klicken Sie dann B dann C.Suppose ABC = D. Then a point multiplied by D gives the same result as a point multiplied by A, then B, then C.

[2 1 1]D = [-2 5 1][2 1 1]D = [-2 5 1]

Die folgende Abbildung zeigt die Matrizen, A, B, C und D.The following illustration shows the matrices A, B, C, and D.

TransformationenTransformations

Die Tatsache, dass die Matrix eine zusammengesetzte Transformation gebildet werden kann, durch die einzelnen Transformationsmatrizen multipliziert bedeutet, dass es sich bei einer beliebigen Folge von affine Transformationen in einer einzelnen gespeichert werden kann Matrix Objekt.The fact that the matrix of a composite transformation can be formed by multiplying the individual transformation matrices means that any sequence of affine transformations can be stored in a single Matrix object.

Achtung

Die Reihenfolge der eine zusammengesetzte Transformation ist wichtig.The order of a composite transformation is important. Im Allgemeinen zu drehen, skalieren und dann zu übersetzen ist nicht dasselbe wie skalieren, drehen und anschließend zu übersetzen.In general, rotate, then scale, then translate is not the same as scale, then rotate, then translate. Die Reihenfolge der Matrixmultiplikation ist ebenso wichtig.Similarly, the order of matrix multiplication is important. ABC ist im Allgemeinen nicht identisch mit PK.In general, ABC is not the same as BAC.

Die Matrix Klasse bietet mehrere Methoden zum Erstellen einer zusammengesetzten Transformations: Multiply, Rotate, RotateAt, Scale, Shear, und Translate.The Matrix class provides several methods for building a composite transformation: Multiply, Rotate, RotateAt, Scale, Shear, and Translate. Im folgende Beispiel wird die Matrix eine zusammengesetzte Transformation, die zuerst eine Drehung um 30 Grad festlegen, und klicken Sie dann mit einem Faktor von 2 in y-Richtung skaliert, und übersetzt dann 5 Einheiten in X-Richtung erstellt:The following example creates the matrix of a composite transformation that first rotates 30 degrees, then scales by a factor of 2 in the y direction, and then translates 5 units in the x direction:

Matrix myMatrix = new Matrix();
myMatrix.Rotate(30);
myMatrix.Scale(1, 2, MatrixOrder.Append);
myMatrix.Translate(5, 0, MatrixOrder.Append);
Dim myMatrix As New Matrix()
myMatrix.Rotate(30)
myMatrix.Scale(1, 2, MatrixOrder.Append)
myMatrix.Translate(5, 0, MatrixOrder.Append)

Konstruktoren

Matrix() Matrix() Matrix() Matrix()

Initialisiert eine neue Instanz der Matrix-Klasse als Identitätsmatrix.Initializes a new instance of the Matrix class as the identity matrix.

Matrix(Rectangle, Point[]) Matrix(Rectangle, Point[]) Matrix(Rectangle, Point[]) Matrix(Rectangle, Point[])

Initialisiert eine neue Instanz der Matrix-Klasse für die geometrische Transformation, die durch das angegebene Rechteck und Punktearray definiert ist.Initializes a new instance of the Matrix class to the geometric transform defined by the specified rectangle and array of points.

Matrix(RectangleF, PointF[]) Matrix(RectangleF, PointF[]) Matrix(RectangleF, PointF[]) Matrix(RectangleF, PointF[])

Initialisiert eine neue Instanz der Matrix-Klasse für die geometrische Transformation, die durch das angegebene Rechteck und Punktearray definiert ist.Initializes a new instance of the Matrix class to the geometric transform defined by the specified rectangle and array of points.

Matrix(Single, Single, Single, Single, Single, Single) Matrix(Single, Single, Single, Single, Single, Single) Matrix(Single, Single, Single, Single, Single, Single) Matrix(Single, Single, Single, Single, Single, Single)

Initialisiert eine neue Instanz der Matrix-Klasse mit den angegebenen Elementen.Initializes a new instance of the Matrix class with the specified elements.

Eigenschaften

Elements Elements Elements Elements

Ruft ein Array von Gleitkommawerten ab, das die Elemente dieser Matrix darstellt.Gets an array of floating-point values that represents the elements of this Matrix.

IsIdentity IsIdentity IsIdentity IsIdentity

Ruft einen Wert ab, der angibt, ob es sich bei Matrix um die Identitätsmatrix handelt.Gets a value indicating whether this Matrix is the identity matrix.

IsInvertible IsInvertible IsInvertible IsInvertible

Ruft einen Wert ab, der angibt, ob diese Matrix leer ist.Gets a value indicating whether this Matrix is invertible.

OffsetX OffsetX OffsetX OffsetX

Ruft den Wert der Verschiebung in x-Richtung (der dx-Wert bzw. das Element in der dritten Zeile und ersten Spalte) dieser Matrix ab.Gets the x translation value (the dx value, or the element in the third row and first column) of this Matrix.

OffsetY OffsetY OffsetY OffsetY

Ruft den Wert der Verschiebung in y-Richtung (den dy-Wert bzw. das Element in der dritten Zeile und zweiten Spalte) der Matrix ab.Gets the y translation value (the dy value, or the element in the third row and second column) of this Matrix.

Methoden

Clone() Clone() Clone() Clone()

Erstellt eine genaue Kopie von dieser Matrix.Creates an exact copy of this Matrix.

CreateObjRef(Type) CreateObjRef(Type) CreateObjRef(Type) CreateObjRef(Type)

Erstellt ein Objekt mit allen relevanten Informationen, die zum Generieren eines Proxys für die Kommunikation mit einem Remoteobjekt erforderlich sind.Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(Inherited from MarshalByRefObject)
Dispose() Dispose() Dispose() Dispose()

Gibt alle von dieser Matrix verwendeten Ressourcen frei.Releases all resources used by this Matrix.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Überprüft, ob das angegebene Objekt eine Matrix und mit dieser Matrix identisch ist.Tests whether the specified object is a Matrix and is identical to this Matrix.

Finalize() Finalize() Finalize() Finalize()

Gibt einem Objekt Gelegenheit zu dem Versuch, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der Garbage Collection freigegeben wird.Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Gibt einen Hashcode zurück.Returns a hash code.

GetLifetimeService() GetLifetimeService() GetLifetimeService() GetLifetimeService()

Ruft das aktuelle Lebensdauerdienstobjekt ab, das die Lebensdauerrichtlinien für diese Instanz steuert.Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(Inherited from MarshalByRefObject)
GetType() GetType() GetType() GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Inherited from Object)
InitializeLifetimeService() InitializeLifetimeService() InitializeLifetimeService() InitializeLifetimeService()

Ruft ein Lebensdauerdienstobjekt zur Steuerung der Lebensdauerrichtlinie für diese Instanz ab.Obtains a lifetime service object to control the lifetime policy for this instance.

(Inherited from MarshalByRefObject)
Invert() Invert() Invert() Invert()

Invertiert diese Matrix, sofern sie invertierbar ist.Inverts this Matrix, if it is invertible.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Inherited from Object)
MemberwiseClone(Boolean) MemberwiseClone(Boolean) MemberwiseClone(Boolean) MemberwiseClone(Boolean)

Erstellt eine flache Kopie des aktuellen MarshalByRefObject-Objekts.Creates a shallow copy of the current MarshalByRefObject object.

(Inherited from MarshalByRefObject)
Multiply(Matrix) Multiply(Matrix) Multiply(Matrix) Multiply(Matrix)

Multipliziert diese Matrix mit der im matrix-Parameter angegebenen Matrix, wobei die angegebene Matrix vorangestellt wird.Multiplies this Matrix by the matrix specified in the matrix parameter, by prepending the specified Matrix.

Multiply(Matrix, MatrixOrder) Multiply(Matrix, MatrixOrder) Multiply(Matrix, MatrixOrder) Multiply(Matrix, MatrixOrder)

Multipliziert diese Matrix mit der im matrix-Parameter angegebenen Matrix in der im order-Parameter angegebenen Reihenfolge.Multiplies this Matrix by the matrix specified in the matrix parameter, and in the order specified in the order parameter.

Reset() Reset() Reset() Reset()

Setzt diese Matrix zurück, sodass sie die Elemente der Identitätsmatrix enthält.Resets this Matrix to have the elements of the identity matrix.

Rotate(Single) Rotate(Single) Rotate(Single) Rotate(Single)

Stellt dieser Matrix eine Drehung im Uhrzeigersinn um den Ursprung mit dem angegebenen Drehwinkel voran.Prepend to this Matrix a clockwise rotation, around the origin and by the specified angle.

Rotate(Single, MatrixOrder) Rotate(Single, MatrixOrder) Rotate(Single, MatrixOrder) Rotate(Single, MatrixOrder)

Weist dieser Matrix eine Drehung im Uhrzeigersinn um den Ursprung (x- und y-Koordinate sind 0 (null)) mit einem im angle-Parameter angegebenen Drehwinkel zu.Applies a clockwise rotation of an amount specified in the angle parameter, around the origin (zero x and y coordinates) for this Matrix.

RotateAt(Single, PointF) RotateAt(Single, PointF) RotateAt(Single, PointF) RotateAt(Single, PointF)

Weist dieser Matrix eine Drehung im Uhrzeigersinn um den im point-Parameter angegebenen Punkt zu, wobei die Drehung vorangestellt wird.Applies a clockwise rotation to this Matrix around the point specified in the point parameter, and by prepending the rotation.

RotateAt(Single, PointF, MatrixOrder) RotateAt(Single, PointF, MatrixOrder) RotateAt(Single, PointF, MatrixOrder) RotateAt(Single, PointF, MatrixOrder)

Weist dieser Matrix eine Drehung im Uhrzeigersinn um den angegebenen Punkt in der angegebenen Reihenfolge zu.Applies a clockwise rotation about the specified point to this Matrix in the specified order.

Scale(Single, Single) Scale(Single, Single) Scale(Single, Single) Scale(Single, Single)

Weist den angegebenen Skalierungsvektor dieser Matrix zu, wobei der Skalierungsvektor vorangestellt wird.Applies the specified scale vector to this Matrix by prepending the scale vector.

Scale(Single, Single, MatrixOrder) Scale(Single, Single, MatrixOrder) Scale(Single, Single, MatrixOrder) Scale(Single, Single, MatrixOrder)

Weist den angegebenen Skalierungsvektor (scaleX und scaleY) der Matrix in der angegebenen Reihenfolge zu.Applies the specified scale vector (scaleX and scaleY) to this Matrix using the specified order.

Shear(Single, Single) Shear(Single, Single) Shear(Single, Single) Shear(Single, Single)

Weist den angegebenen Scherungsvektor der Matrix zu, wobei die Scherungstransformation vorangestellt wird.Applies the specified shear vector to this Matrix by prepending the shear transformation.

Shear(Single, Single, MatrixOrder) Shear(Single, Single, MatrixOrder) Shear(Single, Single, MatrixOrder) Shear(Single, Single, MatrixOrder)

Weist den angegebenen Scherungsvektor dieser Matrix in der angegebenen Reihenfolge zu.Applies the specified shear vector to this Matrix in the specified order.

ToString() ToString() ToString() ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

(Inherited from Object)
TransformPoints(PointF[]) TransformPoints(PointF[]) TransformPoints(PointF[]) TransformPoints(PointF[])

Weist die von dieser Matrix dargestellte geometrische Transformation einem angegebenen Punktearray zu.Applies the geometric transform represented by this Matrix to a specified array of points.

TransformPoints(Point[]) TransformPoints(Point[]) TransformPoints(Point[]) TransformPoints(Point[])

Weist die von dieser Matrix dargestellte geometrische Transformation einem angegebenen Punktearray zu.Applies the geometric transform represented by this Matrix to a specified array of points.

TransformVectors(PointF[]) TransformVectors(PointF[]) TransformVectors(PointF[]) TransformVectors(PointF[])

Multipliziert jeden Vektor in einem Array mit der Matrix.Multiplies each vector in an array by the matrix. Die zu verschiebenden Elemente dieser Matrix (dritte Zeile) werden ignoriert.The translation elements of this matrix (third row) are ignored.

TransformVectors(Point[]) TransformVectors(Point[]) TransformVectors(Point[]) TransformVectors(Point[])

Weist dem angegebenen Punktearray ausschließlich die Skalierungs- und Drehungskomponenten dieser Matrix zu.Applies only the scale and rotate components of this Matrix to the specified array of points.

Translate(Single, Single) Translate(Single, Single) Translate(Single, Single) Translate(Single, Single)

Weist den angegebenen Verschiebungsvektor (offsetX und offsetY) dieser Matrix zu, wobei der Vektor vorangestellt wird.Applies the specified translation vector (offsetX and offsetY) to this Matrix by prepending the translation vector.

Translate(Single, Single, MatrixOrder) Translate(Single, Single, MatrixOrder) Translate(Single, Single, MatrixOrder) Translate(Single, Single, MatrixOrder)

Weist den angegebenen Verschiebungsvektor dieser Matrix in der angegebenen Reihenfolge zu.Applies the specified translation vector to this Matrix in the specified order.

VectorTransformPoints(Point[]) VectorTransformPoints(Point[]) VectorTransformPoints(Point[]) VectorTransformPoints(Point[])

Multipliziert jeden Vektor in einem Array mit der Matrix.Multiplies each vector in an array by the matrix. Die zu verschiebenden Elemente dieser Matrix (dritte Zeile) werden ignoriert.The translation elements of this matrix (third row) are ignored.

Gilt für:

Siehe auch