Matrix

Inheritance: java.lang.Object

public class Matrix

Reemplaza la matriz GDI+.


La mayoría de los algoritmos se tomaron de AffineTransform.java de Sun. Nombres de Java para los elementos de la matriz usados internamente. Mapa de nombres de Java a los de .net con descripción: m00 M11 Escala X m10 M12 Cizalladura Y m01 M21 Cizalladura X m11 M22 Escala Y m02 M31 Traslación X m12 M32 Traslación Y

Constructores

ConstructorDescripción
Matrix()Inicializa una nueva instancia de la clase Matrix como la matriz identidad.
Matrix(float m11, float m12, float m21, float m22, float m31, float m32)Inicializa una nueva instancia de la clase Matrix.
Matrix(RectangleF rect, PointF[] plgpts)Inicializa una nueva instancia de la clase Matrix con la transformación geométrica definida por el rectángulo especificado y la matriz de puntos.
Matrix(Rectangle rect, Point[] plgpts)Inicializa una nueva instancia de la clase Matrix con la transformación geométrica definida por el rectángulo especificado y la matriz de puntos.
Matrix(Matrix origin)Crea una copia de la clase Matrix.

Campos

CampoDescripción
TYPE_IDENTITYUna transformación identidad es aquella en la que las coordenadas de salida son siempre las mismas que las coordenadas de entrada.
TYPE_TRANSLATIONUna traslación mueve las coordenadas una cantidad constante en x e y sin cambiar la longitud o el ángulo de los vectores.
TYPE_UNIFORM_SCALEUna escala uniforme multiplica la longitud de los vectores por la misma cantidad en las direcciones x e y sin cambiar el ángulo entre los vectores.
TYPE_GENERAL_SCALEUna escala general multiplica la longitud de los vectores por diferentes cantidades en las direcciones x e y sin cambiar el ángulo entre vectores perpendiculares.
TYPE_MASK_SCALEEsta constante es una máscara de bits para cualquiera de los bits de bandera de escala.
TYPE_FLIPEste bit de bandera indica que la transformación definida por este objeto realiza una inversión de imagen espejo alrededor de algún eje, lo que cambia el sistema de coordenadas normalmente derecho a uno izquierdo, además de las conversiones indicadas por otros bits de bandera.
TYPE_QUADRANT_ROTATIONEste bit de bandera indica que la transformación definida por este objeto realiza una rotación de cuadrante por un múltiplo de 90 grados, además de las conversiones indicadas por otros bits de bandera.
TYPE_GENERAL_ROTATIONEste bit de bandera indica que la transformación definida por este objeto realiza una rotación por un ángulo arbitrario, además de las conversiones indicadas por otros bits de bandera.
TYPE_MASK_ROTATIONEsta constante es una máscara de bits para cualquiera de los bits de bandera de rotación.
TYPE_GENERAL_TRANSFORMEsta constante indica que la transformación definida por este objeto realiza una conversión arbitraria de las coordenadas de entrada.

Métodos

MétodoDescripción
isEquals(Matrix a, Matrix b)Determina si dos matrices son iguales.
getM11()Obtiene el elemento de la matriz en la primera fila, primera columna.
getM12()Obtiene el elemento de la matriz en la primera fila, segunda columna.
getM21()Obtiene el elemento de la matriz en la segunda fila, primera columna.
getM22()Obtiene el elemento de la matriz en la segunda fila, segunda columna.
getM31()Obtiene el elemento de la matriz en la tercera fila, primera columna.
getM32()Obtiene el elemento de la matriz en la tercera fila, primera columna.
toString()Devuelve una cadena que representa esta instancia.
getElements()Obtiene una copia de los elementos de la matriz.
transformPoints(PointF[] points)Aplica la transformación geométrica representada por este Matrix a una matriz especificada de puntos.
scale(float scaleX, float scaleY, int order)Aplica el vector de escala especificado (scaleX y scaleY) a este Matrix usando el orden especificado.
scale(float sx, float sy)Aplica el vector de escala especificado (scaleX y scaleY) a este Matrix usando el orden (predeterminado) Prepend.
translate(float offsetX, float offsetY, int order)Aplica el vector de traslación especificado a este Matrix en el orden especificado.
translate(float tx, float ty)Aplica el vector de traslación especificado a este Matrix usando el orden (predeterminado) Prepend.
multiply(Matrix tTx, int order)Multiplica este Matrix por la matriz especificada en el parámetro matrix, y en el orden especificado en el parámetro order.
multiply(Matrix tTx)Multiplica este Matrix por la matriz especificada en el parámetro matrix usando el orden (predeterminado) Prepend.
rotate(float angle, int order)Aplica una rotación en sentido horario de una cantidad especificada en el parámetro angle, alrededor del origen (coordenadas x e y cero) para este Matrix en el orden especificado.
rotate(float angle)Aplica una rotación en sentido horario de una cantidad especificada en el parámetro angle, alrededor del origen (coordenadas x e y cero) para este Matrix en el orden predeterminado (Prepend).
rotateAt(float angle, PointF point, int order)Aplica una rotación en sentido horario alrededor del punto especificado a este Matrix en el orden especificado.
rotateAt(float angle, PointF point)Aplica una rotación en sentido horario alrededor del punto especificado a este Matrix en el orden predeterminado (Prepend).
reset()Restablece esta Matriz para que tenga los elementos de la matriz identidad.
hashCode()Devuelve un código hash para esta instancia.
equals(Object obj)Determina si el Object especificado es igual a esta instancia.
isIdentity()Devuelve true si este AffineTransform es una transformación de identidad.

Matrix()

public Matrix()

Inicializa una nueva instancia de la clase Matrix como la matriz identidad.

Matrix(float m11, float m12, float m21, float m22, float m31, float m32)

public Matrix(float m11, float m12, float m21, float m22, float m31, float m32)

Inicializa una nueva instancia de la clase Matrix.

Parameters:

ParámetroTipoDescripción
m11floatm00 M11 Escala X
m12floatm10 M12 Cizalla Y
m21floatm01 M21 Cizalla X
m22floatm11 M22 Escala Y
m31floatm02 M31 Trasladar X
m32floatm12 M32 Trasladar Y

Matrix(RectangleF rect, PointF[] plgpts)

public Matrix(RectangleF rect, PointF[] plgpts)

Inicializa una nueva instancia de la clase Matrix con la transformación geométrica definida por el rectángulo especificado y la matriz de puntos.

Parameters:

ParámetroTipoDescripción
rectRectangleFUna estructura RectangleF que representa el rectángulo a transformar.
plgptsPointF[]Una matriz de tres estructuras PointF que representa los puntos de un paralelogramo al que se transformarán las esquinas superior izquierda, superior derecha e inferior izquierda del rectángulo. La esquina inferior derecha del paralelogramo se deduce de las tres primeras esquinas.

Matrix(Rectangle rect, Point[] plgpts)

public Matrix(Rectangle rect, Point[] plgpts)

Inicializa una nueva instancia de la clase Matrix con la transformación geométrica definida por el rectángulo especificado y la matriz de puntos.

Parameters:

ParámetroTipoDescripción
rectRectangleUna estructura Rectangle que representa el rectángulo a transformar.
plgptsPoint[]Una matriz de tres estructuras Point que representa los puntos de un paralelogramo al que se transformarán las esquinas superior izquierda, superior derecha e inferior izquierda del rectángulo. La esquina inferior derecha del paralelogramo se deduce de las tres primeras esquinas.

Matrix(Matrix origin)

public Matrix(Matrix origin)

Crea una copia de la clase Matrix.

Parameters:

ParámetroTipoDescripción
originMatrixUna matriz base para coping

TYPE_IDENTITY

public static final int TYPE_IDENTITY

Una transformación de identidad es aquella en la que las coordenadas de salida son siempre las mismas que las coordenadas de entrada. Si esta transformación es distinta de la transformación de identidad, el tipo será la constante GENERAL_TRANSFORM o una combinación de los bits de bandera apropiados para las diversas conversiones de coordenadas que realiza esta transformación.

TYPE_TRANSLATION

public static final int TYPE_TRANSLATION

Una traslación mueve las coordenadas una cantidad constante en x e y sin cambiar la longitud o el ángulo de los vectores.

TYPE_UNIFORM_SCALE

public static final int TYPE_UNIFORM_SCALE

Una escala uniforme multiplica la longitud de los vectores por la misma cantidad en las direcciones x e y sin cambiar el ángulo entre los vectores. Este bit de bandera es mutuamente excluyente con la bandera TypeGeneralScale.

TYPE_GENERAL_SCALE

public static final int TYPE_GENERAL_SCALE

Una escala general multiplica la longitud de los vectores por diferentes cantidades en las direcciones x e y sin cambiar el ángulo entre vectores perpendiculares. Este bit de bandera es mutuamente excluyente con la bandera TypeUniformScale.

TYPE_MASK_SCALE

public static final int TYPE_MASK_SCALE

Esta constante es una máscara de bits para cualquiera de los bits de bandera de escala.

TYPE_FLIP

public static final int TYPE_FLIP

Este bit de bandera indica que la transformación definida por este objeto realiza una inversión de imagen espejo alrededor de algún eje, lo que cambia el sistema de coordenadas normalmente derecho a uno izquierdo, además de las conversiones indicadas por otros bits de bandera. Un sistema de coordenadas derecho es aquel en el que el eje X positivo gira en sentido antihorario para superponerse al eje Y positivo, similar a la dirección en que se curvan los dedos de la mano derecha cuando se mira de frente el pulgar. Un sistema de coordenadas izquierdo es aquel en el que el eje X positivo gira en sentido horario para superponerse al eje Y positivo, similar a la dirección en que se curvan los dedos de la mano izquierda. No existe una forma matemática de determinar el ángulo de la inversión o espejo original, ya que todos los ángulos de inversión son idénticos dado una rotación de ajuste apropiada. NOTA: TypeFlip se añadió después de que GENERAL_TRANSFORM estuviera en circulación pública y los bits de bandera ya no pudieron renumerarse convenientemente sin introducir incompatibilidad binaria en código externo.

TYPE_QUADRANT_ROTATION

public static final int TYPE_QUADRANT_ROTATION

Este bit de bandera indica que la transformación definida por este objeto realiza una rotación de cuadrante en múltiplos de 90 grados, además de las conversiones indicadas por otros bits de bandera. Una rotación cambia los ángulos de los vectores en la misma cantidad sin importar la dirección original del vector y sin cambiar la longitud del vector. Este bit de bandera es mutuamente excluyente con la bandera TypeGeneralRotation.

TYPE_GENERAL_ROTATION

public static final int TYPE_GENERAL_ROTATION

Este bit de bandera indica que la transformación definida por este objeto realiza una rotación por un ángulo arbitrario además de las conversiones indicadas por otros bits de bandera. Una rotación cambia los ángulos de los vectores en la misma cantidad sin importar la dirección original del vector y sin cambiar la longitud del vector. Este bit de bandera es mutuamente exclusivo con el

TYPE_MASK_ROTATION

public static final int TYPE_MASK_ROTATION

Esta constante es una máscara de bits para cualquiera de los bits de bandera de rotación.

TYPE_GENERAL_TRANSFORM

public static final int TYPE_GENERAL_TRANSFORM

Esta constante indica que la transformación definida por este objeto realiza una conversión arbitraria de las coordenadas de entrada. Si esta transformación puede clasificarse por cualquiera de las constantes anteriores, el tipo será la constante TypeIdentity o una combinación de los bits de bandera apropiados para las diversas conversiones de coordenadas que realiza esta transformación.

isEquals(Matrix a, Matrix b)

public static boolean isEquals(Matrix a, Matrix b)

Determina si dos matrices son iguales.

Parameters:

ParámetroTipoDescripción
aMatrixLa primera matriz a comparar.
bMatrixLa segunda matriz a comparar.

Returns: boolean - Verdadero si las matrices son iguales.

getM11()

public final float getM11()

Obtiene el elemento de la matriz en la primera fila primera columna. Representa la escala a lo largo del eje X.

Returns: float - el elemento de la matriz en la primera fila primera columna.

getM12()

public final float getM12()

Obtiene el elemento de la matriz en la primera fila segunda columna. Representa la cizalladura a lo largo del eje Y.

Returns: float - el elemento de la matriz en la primera fila segunda columna.

getM21()

public final float getM21()

Obtiene el elemento de la matriz en la segunda fila primera columna. Representa la cizalladura a lo largo del eje X.

Returns: float - el elemento de la matriz en la segunda fila primera columna.

getM22()

public final float getM22()

Obtiene el elemento de la matriz en la segunda fila segunda columna. Representa la escala a lo largo del eje Y.

Returns: float - el elemento de la matriz en la segunda fila segunda columna.

getM31()

public final float getM31()

Obtiene el elemento de la matriz en la tercera fila primera columna. Representa la traslación a lo largo del eje X.

Returns: float - el elemento de la matriz en la tercera fila primera columna.

getM32()

public final float getM32()

Obtiene el elemento de la matriz en la tercera fila primera columna. Representa la traslación a lo largo del eje Y.

Returns: float - el elemento de la matriz en la tercera fila primera columna.

toString()

public String toString()

Devuelve una cadena que representa esta instancia.

Returns: java.lang.String - Una cadena que representa esta instancia.

getElements()

public final float[] getElements()

Obtiene una copia de los elementos de la matriz.

Returns: float[] - Una copia de los elementos de la matriz.

transformPoints(PointF[] points)

public final void transformPoints(PointF[] points)

Aplica la transformación geométrica representada por este Matrix a una matriz especificada de puntos.

Parameters:

ParámetroTipoDescripción
pointsPointF[]Los puntos.

scale(float scaleX, float scaleY, int order)

public final void scale(float scaleX, float scaleY, int order)

Aplica el vector de escala especificado (scaleX y scaleY) a este Matrix usando el orden especificado.

Parameters:

ParámetroTipoDescripción
scaleXfloatLa escala X.
scaleYfloatLa escala Y.
orderintEl orden.

scale(float sx, float sy)

public final void scale(float sx, float sy)

Aplica el vector de escala especificado (scaleX y scaleY) a este Matrix usando el orden (predeterminado) Prepend.

Parameters:

ParámetroTipoDescripción
sxfloatThe sx. The sx. The sx.
syfloatThe sy. The sy. The sy.

translate(float offsetX, float offsetY, int order)

public final void translate(float offsetX, float offsetY, int order)

Aplica el vector de traslación especificado a este Matrix en el orden especificado.

Parameters:

ParámetroTipoDescripción
offsetXfloatEl desplazamiento X.
offsetYfloatEl desplazamiento Y.
orderintEl orden.

translate(float tx, float ty)

public final void translate(float tx, float ty)

Aplica el vector de traslación especificado a este Matrix usando el orden (predeterminado) Prepend.

Parameters:

ParámetroTipoDescripción
txfloatEl tx. El tx. El tx.
tyfloatEl ty. El ty. El ty.

multiply(Matrix tTx, int order)

public final void multiply(Matrix tTx, int order)

Multiplica este Matrix por la matriz especificada en el parámetro matrix, y en el orden especificado en el parámetro order.

Parameters:

ParámetroTipoDescripción
tTxMatrixEl tx. El tx. El tx.
orderintEl orden. El orden. El orden.

multiply(Matrix tTx)

public final void multiply(Matrix tTx)

Multiplica este Matrix por la matriz especificada en el parámetro matrix usando el orden (predeterminado) Prepend.

Parameters:

ParámetroTipoDescripción
tTxMatrixLa matriz con la que multiplicar.

rotate(float angle, int order)

public final void rotate(float angle, int order)

Aplica una rotación en sentido horario de una cantidad especificada en el parámetro angle, alrededor del origen (coordenadas x e y cero) para este Matrix en el orden especificado.

Parameters:

ParámetroTipoDescripción
anglefloatEl ángulo de rotación.
orderintEl orden de la matriz.

rotate(float angle)

public final void rotate(float angle)

Aplica una rotación en sentido horario de una cantidad especificada en el parámetro angle, alrededor del origen (coordenadas x e y cero) para este Matrix en el orden predeterminado (Prepend).

Parameters:

ParámetroTipoDescripción
anglefloatEl ángulo de rotación.

rotateAt(float angle, PointF point, int order)

public final void rotateAt(float angle, PointF point, int order)

Aplica una rotación en sentido horario alrededor del punto especificado a este Matrix en el orden especificado.

Parameters:

ParámetroTipoDescripción
anglefloatEl ángulo.
pointPointFEl punto.
orderintEl orden.

rotateAt(float angle, PointF point)

public final void rotateAt(float angle, PointF point)

Aplica una rotación en sentido horario alrededor del punto especificado a este Matrix en el orden predeterminado (Prepend).

Parameters:

ParámetroTipoDescripción
anglefloatEl ángulo.
pointPointFEl punto.

reset()

public final void reset()

Restablece esta Matriz para que tenga los elementos de la matriz identidad.

hashCode()

public int hashCode()

Devuelve un código hash para esta instancia.

Returns: int - Un código hash para esta instancia, adecuado para su uso en algoritmos de hash y estructuras de datos como una tabla hash.

equals(Object obj)

public boolean equals(Object obj)

Determina si el Object especificado es igual a esta instancia.

Parameters:

ParámetroTipoDescripción
objjava.lang.ObjectEl Object para comparar con esta instancia.

Returns: boolean - true si el Object especificado es igual a esta instancia; de lo contrario, false.

isIdentity()

public boolean isIdentity()

Devuelve true si este AffineTransform es una transformación de identidad.

Returns: boolean - true si este AffineTransform es una transformación identidad; false de lo contrario.