Matrix Matrix Matrix Matrix Class

Definizione

Incapsula una matrice affine 3x3 che rappresenta una trasformazione geometrica.Encapsulates a 3-by-3 affine matrix that represents a geometric transform. Questa classe non può essere ereditata.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
Ereditarietà
Implementazioni

Commenti

In GDI+GDI+ è possibile archiviare una trasformazione affine in un Matrix oggetto.In GDI+GDI+ you can store an affine transformation in a Matrix object. Poiché la terza colonna di una matrice che rappresenta una trasformazione affine è sempre (0, 0, 1), è necessario specificare solo i sei numeri nelle prime due colonne quando si costruisce un Matrix oggetto.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'istruzione Matrix myMatrix = new Matrix(0, 1, -1, 0, 3, 4) costruisce la matrice mostrata nella figura seguente.The statement Matrix myMatrix = new Matrix(0, 1, -1, 0, 3, 4) constructs the matrix shown in the following figure.

![] Trasformazioni (~/add/media/aboutgdip05-art10.gif "") TrasformazioniTransformations

Trasformazioni compositeComposite Transformations

Una trasformazione composita è una sequenza di trasformazioni, una seguita dall'altra.A composite transformation is a sequence of transformations, one followed by the other. Prendere in considerazione le matrici e le trasformazioni nell'elenco seguente:Consider the matrices and transformations in the following list:

Matrice AMatrix A Ruota di 90 gradiRotate 90 degrees
Matrice BMatrix B Ridimensionare in base a un fattore 2 nella direzione xScale by a factor of 2 in the x direction
Matrice CMatrix C Tradurre 3 unità nella direzione yTranslate 3 units in the y direction

Se si inizia con il punto (2, 1), rappresentato dalla matrice [2 1 1] e si moltiplica per A, quindi B, C, il punto (2, 1) subirà le tre trasformazioni nell'ordine indicato.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]

Anziché archiviare le tre parti della trasformazione composita in tre matrici separate, è possibile moltiplicare a, B e C per ottenere una singola matrice da 3 × 3 che archivia l'intera trasformazione composita.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. Si supponga ABC = D. Un punto moltiplicato per D restituisce lo stesso risultato di un punto moltiplicato per A, quindi B, quindi 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]

Nella figura seguente sono illustrate le matrici A, B, C e D.The following illustration shows the matrices A, B, C, and D.

![] Trasformazioni (~/add/media/aboutgdip05-art12.gif "") TrasformazioniTransformations

Il fatto che la matrice di una trasformazione composita possa essere formata moltiplicando le singole matrici di trasformazione significa che qualsiasi sequenza di trasformazioni affini può essere archiviata in Matrix un singolo oggetto.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.

Attenzione

L'ordine di una trasformazione composita è importante.The order of a composite transformation is important. In generale, ruotare, quindi ridimensionare, quindi tradurre non corrisponde a scala, quindi ruotare e quindi traslare.In general, rotate, then scale, then translate is not the same as scale, then rotate, then translate. Analogamente, l'ordine di moltiplicazione della matrice è importante.Similarly, the order of matrix multiplication is important. In generale, ABC non corrisponde a BAC.In general, ABC is not the same as BAC.

La Matrix classe fornisce diversi metodi per la compilazione di una trasformazione Multiplycomposita RotateAt: Scale, Shear Rotate,, Translate, e.The Matrix class provides several methods for building a composite transformation: Multiply, Rotate, RotateAt, Scale, Shear, and Translate. Nell'esempio seguente viene creata la matrice di una trasformazione composita che ruota per prima 30 gradi, quindi viene ridimensionata in base a un fattore 2 nella direzione y e quindi si traduce 5 unità nella direzione 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)

Costruttori

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

Inizializza una nuova istanza della classe Matrix come matrice di identità.Initializes a new instance of the Matrix class as the identity matrix.

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

Inizializza una nuova istanza della classe Matrix per la trasformazione geometrica definita dal rettangolo e dalla matrice di punti specificati.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[])

Inizializza una nuova istanza della classe Matrix per la trasformazione geometrica definita dal rettangolo e dalla matrice di punti specificati.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)

Inizializza una nuova istanza della classe Matrix con gli elementi specificati.Initializes a new instance of the Matrix class with the specified elements.

Proprietà

Elements Elements Elements Elements

Ottiene una matrice di valori a virgola mobile che rappresenta gli elementi della classe Matrix.Gets an array of floating-point values that represents the elements of this Matrix.

IsIdentity IsIdentity IsIdentity IsIdentity

Ottiene un valore che indica se la classe Matrix è la matrice di identità.Gets a value indicating whether this Matrix is the identity matrix.

IsInvertible IsInvertible IsInvertible IsInvertible

Ottiene un valore che indica se questa classe Matrix è invertibile.Gets a value indicating whether this Matrix is invertible.

OffsetX OffsetX OffsetX OffsetX

Ottiene il valore di traslazione x (il valore dx o l'elemento nella terza riga e nella prima colonna) della classe Matrix.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

Ottiene il valore di traslazione y (il valore dy oppure l'elemento nella terza riga e nella seconda colonna) di Matrix.Gets the y translation value (the dy value, or the element in the third row and second column) of this Matrix.

Metodi

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

Crea una copia esatta di questo Matrix.Creates an exact copy of this Matrix.

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

Consente di creare un oggetto che contiene tutte le informazioni rilevanti necessarie per la generazione del proxy utilizzato per effettuare la comunicazione con un oggetto remoto.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()

Rilascia tutte le risorse usate da questa classe Matrix.Releases all resources used by this Matrix.

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

Esegue il test che verifica se l'oggetto specificato è una classe Matrix e se è identico a questa classe Matrix.Tests whether the specified object is a Matrix and is identical to this Matrix.

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

Consente a un oggetto di effettuare un tentativo di liberare risorse ed eseguire altre operazioni di pulizia prima che venga recuperato da Garbage Collection.Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.

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

Restituisce un codice hash.Returns a hash code.

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

Consente di recuperare l'oggetto servizio di durata corrente per controllare i criteri di durata per l'istanza.Retrieves the current lifetime service object that controls the lifetime policy for this instance.

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

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

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

Ottiene un oggetto servizio di durata per controllare i criteri di durata per questa istanza.Obtains a lifetime service object to control the lifetime policy for this instance.

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

Inverte la classe Matrix, se è invertibile.Inverts this Matrix, if it is invertible.

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

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

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

Crea una copia dei riferimenti dell'oggetto MarshalByRefObject corrente.Creates a shallow copy of the current MarshalByRefObject object.

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

Moltiplica la classe Matrix per la matrice specificata nel parametro matrix, anteponendo la classe Matrix specificata.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)

Moltiplica la classe Matrix per la matrice specificata nel parametro matrix secondo l'ordine specificato nel parametro order.Multiplies this Matrix by the matrix specified in the matrix parameter, and in the order specified in the order parameter.

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

Reimposta la classe Matrix in modo che disponga degli stessi elementi della matrice di identità.Resets this Matrix to have the elements of the identity matrix.

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

Antepone alla classe Matrix una rotazione in senso orario, intorno all'origine e in base all'angolo specificato.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)

Applica una rotazione in senso orario del valore specificato nel parametro angle intorno all'origine (coordinate x e y pari a zero) per la classe 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) RotateAt(Single, PointF) RotateAt(Single, PointF) RotateAt(Single, PointF)

Applica una rotazione in senso orario alla classe Matrix intorno al punto specificato nel parametro point e anteponendo la rotazione.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)

Applica una rotazione in senso orario intorno al punto specificato alla classe Matrix nell'ordine indicato.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)

Applica il vettore di modifica delle proporzioni specificato alla classe Matrix anteponendolo.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)

Applica il vettore di modifica delle proporzioni specificato (scaleX e scaleY) alla classeMatrix utilizzando l'ordine specificato.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)

Applica il vettore di taglio specificato a questa classe Matrix anteponendo la trasformazione di taglio.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)

Applica il vettore di taglio specificato alla classe Matrix nell'ordine indicato.Applies the specified shear vector to this Matrix in the specified order.

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

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

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

Applica la trasformazione geometrica rappresentata dalla classe Matrix a una matrice di punti specificata.Applies the geometric transform represented by this Matrix to a specified array of points.

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

Applica la trasformazione geometrica rappresentata dalla classe Matrix a una matrice di punti specificata.Applies the geometric transform represented by this Matrix to a specified array of points.

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

Moltiplica ciascun vettore di una matrice per la matrice.Multiplies each vector in an array by the matrix. Gli elementi di traslazione di questa matrice (terza riga) vengono ignorati.The translation elements of this matrix (third row) are ignored.

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

Applica alla matrice di punti specificata solo i componenti di rotazione e di modifica delle proporzioni della classe Matrix.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)

Applica il vettore di traslazione specificato (offsetX e offsetY) alla classe Matrix anteponendolo.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)

Applica il vettore di traslazione specificato alla classe Matrix nell'ordine indicato.Applies the specified translation vector to this Matrix in the specified order.

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

Moltiplica ciascun vettore di una matrice per la matrice.Multiplies each vector in an array by the matrix. Gli elementi di traslazione di questa matrice (terza riga) vengono ignorati.The translation elements of this matrix (third row) are ignored.

Si applica a

Vedi anche