Matrix Classe

Définition

Encapsule une matrice affine 3-par-3 qui représente une transformation géométrique.Encapsulates a 3-by-3 affine matrix that represents a geometric transform. Cette classe ne peut pas être héritée.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
Héritage
Implémente

Remarques

Dans GDI+GDI+ vous pouvez stocker une transformation affine dans un objet Matrix.In GDI+GDI+ you can store an affine transformation in a Matrix object. Étant donné que la troisième colonne d’une matrice qui représente une transformation affine est toujours (0, 0, 1), vous spécifiez uniquement les six nombres dans les deux premières colonnes quand vous construisez un objet Matrix.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. L’instruction Matrix myMatrix = new Matrix(0, 1, -1, 0, 3, 4) construit la matrice présentée dans l’illustration suivante.The statement Matrix myMatrix = new Matrix(0, 1, -1, 0, 3, 4) constructs the matrix shown in the following figure.

TransformationsTransformations

Transformations compositesComposite Transformations

Une transformation composite est une séquence de transformations, l’une suivie de l’autre.A composite transformation is a sequence of transformations, one followed by the other. Tenez compte des matrices et des transformations figurant dans la liste suivante :Consider the matrices and transformations in the following list:

Matrice AMatrix A Faire pivoter de 90 degrésRotate 90 degrees
Matrice BMatrix B Mise à l’échelle d’un facteur de 2 dans la direction xScale by a factor of 2 in the x direction
Matrice CMatrix C Translater 3 unités sur l’axe yTranslate 3 units in the y direction

Si nous commençons par le point (2, 1) (représenté par la matrice [2 1 1]) et multipliés par A, puis B, puis C, le point (2, 1) subira les trois transformations dans l’ordre indiqué.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]

Au lieu de stocker les trois parties de la transformation composite dans trois matrices distinctes, vous pouvez multiplier A, B et C ensemble pour obtenir une matrice 3 × 3 unique qui stocke l’intégralité de la transformation composite.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. Supposons que ABC = D. Un point multiplié par D donne le même résultat qu’un point multiplié par A, puis B, puis 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]

L’illustration suivante montre les matrices A, B, C et D.The following illustration shows the matrices A, B, C, and D.

TransformationsTransformations

Le fait que la matrice d’une transformation composite puisse être formée en multipliant les matrices de transformation individuelles signifie que toute séquence de transformations affines peut être stockée dans un objet Matrix unique.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.

Attention

L’ordre d’une transformation composite est important.The order of a composite transformation is important. En général, faire pivoter, puis mettre à l’échelle, puis translater n’est pas identique à l’échelle, faire pivoter, puis traduire.In general, rotate, then scale, then translate is not the same as scale, then rotate, then translate. De même, l’ordre de multiplication des matrices est important.Similarly, the order of matrix multiplication is important. En général, ABC n’est pas le même que le BAA.In general, ABC is not the same as BAC.

La classe Matrix fournit plusieurs méthodes pour générer une transformation composite : Multiply, Rotate, RotateAt, Scale, Shearet Translate.The Matrix class provides several methods for building a composite transformation: Multiply, Rotate, RotateAt, Scale, Shear, and Translate. L’exemple suivant crée la matrice d’une transformation composite qui fait pivoter d’abord 30 degrés, puis met à l’échelle d’un facteur de 2 sur l’axe y, puis convertit 5 unités dans la direction x :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)

Constructeurs

Matrix()

Initialise une nouvelle instance de la classe Matrix en tant que matrice d'identité.Initializes a new instance of the Matrix class as the identity matrix.

Matrix(Rectangle, Point[])

Initialise une nouvelle instance de la classe Matrix en lui assignant la transformation géométrique définie par le rectangle et le tableau de points spécifiés.Initializes a new instance of the Matrix class to the geometric transform defined by the specified rectangle and array of points.

Matrix(RectangleF, PointF[])

Initialise une nouvelle instance de la classe Matrix en lui assignant la transformation géométrique définie par le rectangle et le tableau de points spécifiés.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)

Initialise une nouvelle instance de la classe Matrix avec les éléments spécifiés.Initializes a new instance of the Matrix class with the specified elements.

Propriétés

Elements

Obtient un tableau de valeurs à virgule flottante qui représente les éléments de ce Matrix.Gets an array of floating-point values that represents the elements of this Matrix.

IsIdentity

Obtient une valeur indiquant si ce Matrix est la matrice d'identité.Gets a value indicating whether this Matrix is the identity matrix.

IsInvertible

Obtient une valeur indiquant si ce Matrix peut être inversé.Gets a value indicating whether this Matrix is invertible.

OffsetX

Obtient la valeur de translation x (la valeur dx, ou l'élément à l'intersection de la troisième ligne et de la première colonne) de ce Matrix.Gets the x translation value (the dx value, or the element in the third row and first column) of this Matrix.

OffsetY

Obtient la valeur de translation y (la valeur dy ou l'élément à l'intersection de la troisième ligne et de la deuxième colonne) de cet objet Matrix.Gets the y translation value (the dy value, or the element in the third row and second column) of this Matrix.

Méthodes

Clone()

Crée une copie exacte de Matrix.Creates an exact copy of this Matrix.

CreateObjRef(Type)

Crée un objet contenant toutes les informations appropriées requises pour générer un proxy permettant de communiquer avec un objet distant.Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(Hérité de MarshalByRefObject)
Dispose()

Libère toutes les ressources utilisées par ce Matrix.Releases all resources used by this Matrix.

Equals(Object)

Vérifie si l'objet spécifié est un Matrix identique à ce Matrix.Tests whether the specified object is a Matrix and is identical to this Matrix.

Finalize()

Autorise un objet à tenter de libérer des ressources et à exécuter d'autres opérations de nettoyage avant qu'il ne soit récupéré par une opération garbage collection.Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.

GetHashCode()

Retourne un code de hachage.Returns a hash code.

GetLifetimeService()

Récupère l'objet de service de durée de vie en cours qui contrôle la stratégie de durée de vie de cette instance.Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(Hérité de MarshalByRefObject)
GetType()

Obtient le Type de l'instance actuelle.Gets the Type of the current instance.

(Hérité de Object)
InitializeLifetimeService()

Obtient un objet de service de durée de vie pour contrôler la stratégie de durée de vie de cette instance.Obtains a lifetime service object to control the lifetime policy for this instance.

(Hérité de MarshalByRefObject)
Invert()

Inverse ce Matrix, le cas échéant.Inverts this Matrix, if it is invertible.

MemberwiseClone()

Crée une copie superficielle du Object actuel.Creates a shallow copy of the current Object.

(Hérité de Object)
MemberwiseClone(Boolean)

Crée une copie superficielle de l'objet MarshalByRefObject actuel.Creates a shallow copy of the current MarshalByRefObject object.

(Hérité de MarshalByRefObject)
Multiply(Matrix)

Multiplie ce Matrix par la matrice spécifiée dans le paramètre matrix en ajoutant le Matrix spécifié au début.Multiplies this Matrix by the matrix specified in the matrix parameter, by prepending the specified Matrix.

Multiply(Matrix, MatrixOrder)

Multiplie ce Matrix par la matrice spécifiée par le paramètre matrix, dans l'ordre spécifié par le paramètre order.Multiplies this Matrix by the matrix specified in the matrix parameter, and in the order specified in the order parameter.

Reset()

Réinitialise ce Matrix en lui assignant les éléments de la matrice d'identité.Resets this Matrix to have the elements of the identity matrix.

Rotate(Single)

Ajoute une rotation égale à l'angle spécifié, dans le sens des aiguilles d'une montre et par rapport à l'origine, au début de ce Matrix.Prepend to this Matrix a clockwise rotation, around the origin and by the specified angle.

Rotate(Single, MatrixOrder)

Applique une rotation égale à la valeur spécifiée par le paramètre angle, dans le sens des aiguilles d'une montre et par rapport à l'origine (coordonnées x et y égales à zéro), pour ce Matrix.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)

Applique une rotation dans le sens des aiguilles d'une montre et par rapport au point spécifié par le paramètre Matrix à ce point en l'ajoutant au début.Applies a clockwise rotation to this Matrix around the point specified in the point parameter, and by prepending the rotation.

RotateAt(Single, PointF, MatrixOrder)

Applique une rotation dans le sens des aiguilles d'une montre et par rapport au point spécifié à ce Matrix dans l'ordre spécifié.Applies a clockwise rotation about the specified point to this Matrix in the specified order.

Scale(Single, Single)

Applique le vecteur d'échelle spécifié à ce Matrix en l'ajoutant au début.Applies the specified scale vector to this Matrix by prepending the scale vector.

Scale(Single, Single, MatrixOrder)

Applique le vecteur d'échelle spécifié (scaleX et scaleY) à ce Matrix dans l'ordre spécifié.Applies the specified scale vector (scaleX and scaleY) to this Matrix using the specified order.

Shear(Single, Single)

Applique le vecteur d'inclinaison spécifié à ce Matrix en l'ajoutant au début de la transformation d'inclinaison.Applies the specified shear vector to this Matrix by prepending the shear transformation.

Shear(Single, Single, MatrixOrder)

Applique le vecteur d'inclinaison spécifié à ce Matrix dans l'ordre spécifié.Applies the specified shear vector to this Matrix in the specified order.

ToString()

Retourne une chaîne qui représente l'objet actif.Returns a string that represents the current object.

(Hérité de Object)
TransformPoints(Point[])

Applique la transformation géométrique représentée par ce Matrix à un tableau de points spécifié.Applies the geometric transform represented by this Matrix to a specified array of points.

TransformPoints(PointF[])

Applique la transformation géométrique représentée par ce Matrix à un tableau de points spécifié.Applies the geometric transform represented by this Matrix to a specified array of points.

TransformVectors(Point[])

Applique uniquement les composants d'échelle et de rotation de ce Matrix au tableau de points spécifié.Applies only the scale and rotate components of this Matrix to the specified array of points.

TransformVectors(PointF[])

Multiplie chaque vecteur d'un tableau par la matrice.Multiplies each vector in an array by the matrix. Les éléments de translation de cette matrice (troisième ligne) sont ignorés.The translation elements of this matrix (third row) are ignored.

Translate(Single, Single)

Applique le vecteur de translation spécifié (offsetX et offsetY) à ce Matrix en l'ajoutant au début.Applies the specified translation vector (offsetX and offsetY) to this Matrix by prepending the translation vector.

Translate(Single, Single, MatrixOrder)

Applique le vecteur de translation spécifié à ce Matrix dans l'ordre spécifié.Applies the specified translation vector to this Matrix in the specified order.

VectorTransformPoints(Point[])

Multiplie chaque vecteur d'un tableau par la matrice.Multiplies each vector in an array by the matrix. Les éléments de translation de cette matrice (troisième ligne) sont ignorés.The translation elements of this matrix (third row) are ignored.

S’applique à

Voir aussi