Matrix Matrix Matrix Matrix Class

Definición

Encapsula una matriz 3 por 3 afín que representa una transformación geométrica.Encapsulates a 3-by-3 affine matrix that represents a geometric transform. Esta clase no puede heredarse.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
Herencia
Implementaciones

Comentarios

En GDI+GDI+ puede almacenar una transformación afín en un Matrix objeto.In GDI+GDI+ you can store an affine transformation in a Matrix object. Dado que la tercera columna de una matriz que representa una transformación afín siempre es (0, 0, 1), solo se especifican los seis números de las dos primeras columnas al construir un Matrix objeto.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. La instrucción Matrix myMatrix = new Matrix(0, 1, -1, 0, 3, 4) crea la matriz que se muestra en la ilustración siguiente.The statement Matrix myMatrix = new Matrix(0, 1, -1, 0, 3, 4) constructs the matrix shown in the following figure.

![] Transformaciones (~/add/media/aboutgdip05-art10.gif "") TransformacionesTransformations

Transformaciones compuestasComposite Transformations

Una transformación compuesta es una secuencia de transformaciones, una seguida de la otra.A composite transformation is a sequence of transformations, one followed by the other. Tenga en cuenta las matrices y las transformaciones en la lista siguiente:Consider the matrices and transformations in the following list:

Matriz AMatrix A Girar 90 gradosRotate 90 degrees
Matriz BMatrix B Escalar en un factor de 2 en la dirección xScale by a factor of 2 in the x direction
Matriz CMatrix C Traducir 3 unidades en la dirección yTranslate 3 units in the y direction

Si comenzamos con el punto (2, 1) (representado por la matriz [2 1 1]) y multiplicado por A, entonces B y después a C, el punto (2, 1) se someterá a las tres transformaciones en el orden mostrado.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]

En lugar de almacenar las tres partes de la transformación compuesta en tres matrices independientes, puede multiplicar A, B y C a la vez para obtener una sola matriz de 3 × 3 que almacena toda la transformación compuesta.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. Supongamos que es ABC = D. Después, un punto multiplicado por D proporciona el mismo resultado que un punto multiplicado por a, a continuación, B y después a 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]

En la ilustración siguiente se muestran las matrices A, B, C y D.The following illustration shows the matrices A, B, C, and D.

![] Transformaciones (~/add/media/aboutgdip05-art12.gif "") TransformacionesTransformations

El hecho de que se pueda formar la matriz de una transformación compuesta multiplicando las matrices de transformación individuales significa que cualquier secuencia de transformaciones afines puede almacenarse en un solo Matrix objeto.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.

Precaución

El orden de una transformación compuesta es importante.The order of a composite transformation is important. En general, gire, después escale y, a continuación, translate no es lo mismo que Scale, después Rotate y, después, translate.In general, rotate, then scale, then translate is not the same as scale, then rotate, then translate. Del mismo modo, es importante el orden de multiplicación de la matriz.Similarly, the order of matrix multiplication is important. En general, ABC no es lo mismo que CPF.In general, ABC is not the same as BAC.

La Matrix clase proporciona varios métodos para compilar una transformación Multiplycompuesta Rotate: RotateAt, Scale, Shear,, Translatey.The Matrix class provides several methods for building a composite transformation: Multiply, Rotate, RotateAt, Scale, Shear, and Translate. En el ejemplo siguiente se crea la matriz de una transformación compuesta que primero gira 30 grados, después se escala por un factor de 2 en la dirección y y, a continuación, convierte 5 unidades en la dirección 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)

Constructores

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

Inicializa una nueva instancia de la clase Matrix como matriz de identidad.Initializes a new instance of the Matrix class as the identity matrix.

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

Inicializa una nueva instancia de la clase Matrix en la transformación geométrica definida por la matriz de puntos y el rectángulo especificados.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[])

Inicializa una nueva instancia de la clase Matrix en la transformación geométrica definida por la matriz de puntos y el rectángulo especificados.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)

Inicializa una nueva instancia de la clase Matrix con los elementos especificados.Initializes a new instance of the Matrix class with the specified elements.

Propiedades

Elements Elements Elements Elements

Obtiene una matriz de valores numéricos de punto flotante que representa los elementos de esta Matrix.Gets an array of floating-point values that represents the elements of this Matrix.

IsIdentity IsIdentity IsIdentity IsIdentity

Obtiene un valor que indica si esta Matrix es la matriz de identidad.Gets a value indicating whether this Matrix is the identity matrix.

IsInvertible IsInvertible IsInvertible IsInvertible

Obtiene un valor que indica si la Matrix se puede invertir.Gets a value indicating whether this Matrix is invertible.

OffsetX OffsetX OffsetX OffsetX

Obtiene el valor de conversión x (el valor dx o el elemento de la tercera fila, primera columna) de esta 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

Obtiene el valor de traducción y (el valor dy o el elemento de la tercera fila, segunda columna) de esta Matrix.Gets the y translation value (the dy value, or the element in the third row and second column) of this Matrix.

Métodos

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

Crea una copia exacta de este objeto Matrix.Creates an exact copy of this Matrix.

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

Crea un objeto que contiene toda la información relevante necesaria para generar un proxy utilizado para comunicarse con un objeto 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()

Libera todos los recursos utilizados por este Matrix.Releases all resources used by this Matrix.

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

Comprueba si el objeto especificado es una Matrix y si es idéntico a esta Matrix.Tests whether the specified object is a Matrix and is identical to this Matrix.

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

Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de que sea reclamado por la recolección de elementos no utilizados.Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.

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

Devuelve un código hash.Returns a hash code.

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

Recupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia.Retrieves the current lifetime service object that controls the lifetime policy for this instance.

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

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

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

Obtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia.Obtains a lifetime service object to control the lifetime policy for this instance.

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

Invierte esta Matrix, si se puede invertir.Inverts this Matrix, if it is invertible.

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

Crea una copia superficial del objeto Object actual.Creates a shallow copy of the current Object.

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

Crea una copia superficial del objeto MarshalByRefObject actual.Creates a shallow copy of the current MarshalByRefObject object.

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

Multiplica esta Matrix por la matriz especificada en el parámetro matrix, anteponiéndole la Matrix especificada.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)

Multiplica esta Matrix por la matriz especificada en el parámetro matrix y en el orden especificado en el parámetro 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()

Restablece esta Matrix para que tenga los elementos de la matriz de identidad.Resets this Matrix to have the elements of the identity matrix.

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

Antepone a esta Matrix un giro en el sentido de las agujas del reloj, en torno al origen y del ángulo especificado.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)

Aplica a esta Matrix un giro en el sentido de las agujas del reloj y en la cantidad especificada en el parámetro angle, en torno al origen (coordenadas x e y cero).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)

Aplica a esta Matrix un giro en el sentido de las agujas del reloj en torno al punto especificado en el parámetro point, anteponiendo el giro.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)

Aplica a esta Matrix un giro en el sentido de las agujas del reloj en torno al punto especificado y en el orden especificado.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)

Aplica el vector de escala especificado a esta Matrix anteponiendo el vector de escala.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)

Aplica el vector de escala especificado (scaleX y scaleY) a esta Matrix en el orden especificado.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)

Aplica el vector de recorte especificado a este objeto Matrix anteponiendo la transformación de recorte.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)

Aplica el vector de recorte especificado a esta Matrix en el orden especificado.Applies the specified shear vector to this Matrix in the specified order.

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

Devuelve una cadena que representa el objeto actual.Returns a string that represents the current object.

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

Aplica la transformación geométrica que representa esta Matrix a una matriz de puntos especificada.Applies the geometric transform represented by this Matrix to a specified array of points.

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

Aplica la transformación geométrica que representa esta Matrix a una matriz de puntos especificada.Applies the geometric transform represented by this Matrix to a specified array of points.

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

Multiplica cada vector de una matriz por la matriz.Multiplies each vector in an array by the matrix. Los elementos de conversión de esta matriz (tercera fila) se omiten.The translation elements of this matrix (third row) are ignored.

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

Aplica sólo los componentes de escala y giro de esta Matrix a la matriz de puntos especificada.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)

Aplica el vector de conversión especificado (offsetX y offsetY) a esta Matrix anteponiendo el vector de conversión.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)

Aplica el vector de conversión especificado a esta Matrix en el orden especificado.Applies the specified translation vector to this Matrix in the specified order.

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

Multiplica cada vector de una matriz por la matriz.Multiplies each vector in an array by the matrix. Los elementos de conversión de esta matriz (tercera fila) se omiten.The translation elements of this matrix (third row) are ignored.

Se aplica a

Consulte también: