Matrix
Inheritance: java.lang.Object
public class Matrix
Sostituisce la matrice GDI+.
La maggior parte degli algoritmi è presa da AffineTransform.java di Sun. Nomi Java per gli elementi della matrice usati internamente. Mappa dei nomi Java a quelli .net con descrizione: m00 M11 Scala X m10 M12 Scostamento Y m01 M21 Scostamento X m11 M22 Scala Y m02 M31 Traslazione X m12 M32 Traslazione Y
Costruttori
| Costruttore | Descrizione |
|---|---|
| Matrix() | Inizializza una nuova istanza della classe Matrix come matrice identità. |
| Matrix(float m11, float m12, float m21, float m22, float m31, float m32) | Inizializza una nuova istanza della classe Matrix. |
| Matrix(RectangleF rect, PointF[] plgpts) | Inizializza una nuova istanza della classe Matrix alla trasformazione geometrica definita dal rettangolo specificato e dall’array di punti. |
| Matrix(Rectangle rect, Point[] plgpts) | Inizializza una nuova istanza della classe Matrix alla trasformazione geometrica definita dal rettangolo specificato e dall’array di punti. |
| Matrix(Matrix origin) | Crea una copia della classe Matrix. |
Campi
| Campo | Descrizione |
|---|---|
| TYPE_IDENTITY | Una trasformazione identità è quella in cui le coordinate di output sono sempre le stesse delle coordinate di input. |
| TYPE_TRANSLATION | Una traslazione sposta le coordinate di una quantità costante in x e y senza modificare la lunghezza o l’angolo dei vettori. |
| TYPE_UNIFORM_SCALE | Una scala uniforme moltiplica la lunghezza dei vettori della stessa quantità sia nella direzione x che nella y senza cambiare l’angolo tra i vettori. |
| TYPE_GENERAL_SCALE | Una scala generale moltiplica la lunghezza dei vettori di quantità diverse nelle direzioni x e y senza modificare l’angolo tra vettori perpendicolari. |
| TYPE_MASK_SCALE | Questa costante è una maschera di bit per uno qualsiasi dei bit di flag di scala. |
| TYPE_FLIP | Questo bit di flag indica che la trasformazione definita da questo oggetto esegue un ribaltamento speculare attorno a qualche asse, che trasforma il normale sistema di coordinate destro in un sistema sinistro, oltre alle conversioni indicate dagli altri bit di flag. |
| TYPE_QUADRANT_ROTATION | Questo bit di flag indica che la trasformazione definita da questo oggetto esegue una rotazione di quadrante di un multiplo di 90 gradi, oltre alle conversioni indicate dagli altri bit di flag. |
| TYPE_GENERAL_ROTATION | Questo bit di flag indica che la trasformazione definita da questo oggetto esegue una rotazione di un angolo arbitrario, oltre alle conversioni indicate dagli altri bit di flag. |
| TYPE_MASK_ROTATION | Questa costante è una maschera di bit per uno qualsiasi dei bit di flag di rotazione. |
| TYPE_GENERAL_TRANSFORM | Questa costante indica che la trasformazione definita da questo oggetto esegue una conversione arbitraria delle coordinate di input. |
Metodi
| Metodo | Descrizione |
|---|---|
| isEquals(Matrix a, Matrix b) | Determina se due matrici sono uguali. |
| getM11() | Restituisce l’elemento della matrice nella prima riga, prima colonna. |
| getM12() | Restituisce l’elemento della matrice nella prima riga, seconda colonna. |
| getM21() | Restituisce l’elemento della matrice nella seconda riga, prima colonna. |
| getM22() | Restituisce l’elemento della matrice nella seconda riga, seconda colonna. |
| getM31() | Restituisce l’elemento della matrice nella terza riga, prima colonna. |
| getM32() | Restituisce l’elemento della matrice nella terza riga, prima colonna. |
| toString() | Restituisce una String che rappresenta questa istanza. |
| getElements() | Restituisce una copia degli elementi della matrice. |
| transformPoints(PointF[] points) | Applica la trasformazione geometrica rappresentata da questa Matrix a un array specificato di punti. |
| scale(float scaleX, float scaleY, int order) | Applica il vettore di scala specificato (scaleX e scaleY) a questa Matrix usando l’ordine specificato. |
| scale(float sx, float sy) | Applica il vettore di scala specificato (scaleX e scaleY) a questa Matrix usando l’ordine (predefinito) Prepend. |
| translate(float offsetX, float offsetY, int order) | Applica il vettore di traslazione specificato a questa Matrix nell’ordine specificato. |
| translate(float tx, float ty) | Applica il vettore di traslazione specificato a questa Matrix usando l’ordine (predefinito) Prepend. |
| multiply(Matrix tTx, int order) | Moltiplica questa Matrix per la matrice specificata nel parametro matrix e nell’ordine specificato nel parametro order. |
| multiply(Matrix tTx) | Moltiplica questa Matrix per la matrice specificata nel parametro matrix usando l’ordine (predefinito) Prepend. |
| rotate(float angle, int order) | Applica una rotazione in senso orario di un valore specificato nel parametro angle, attorno all’origine (coordinate x e y zero) per questa Matrix nell’ordine specificato. |
| rotate(float angle) | Applica una rotazione in senso orario di un valore specificato nel parametro angle, attorno all’origine (coordinate x e y zero) per questa Matrix nell’ordine predefinito (Prepend). |
| rotateAt(float angle, PointF point, int order) | Applica una rotazione in senso orario attorno al punto specificato a questa Matrix nell’ordine specificato. |
| rotateAt(float angle, PointF point) | Applica una rotazione in senso orario attorno al punto specificato a questa Matrix nell’ordine predefinito (Prepend). |
| reset() | Reimposta questa Matrice in modo che contenga gli elementi della matrice identità. |
| hashCode() | Restituisce un codice hash per questa istanza. |
| equals(Object obj) | Determina se l’Object specificato è uguale a questa istanza. |
| isIdentity() | Restituisce true se questo AffineTransform è una trasformazione identità. |
Matrix()
public Matrix()
Inizializza una nuova istanza della classe Matrix come matrice identità.
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)
Inizializza una nuova istanza della classe Matrix.
Parameters:
| Parametro | Tipo | Descrizione |
|---|---|---|
| m11 | float | m00 M11 Scala X |
| m12 | float | m10 M12 Taglio Y |
| m21 | float | m01 M21 Taglio X |
| m22 | float | m11 M22 Scala Y |
| m31 | float | m02 M31 Traslazione X |
| m32 | float | m12 M32 Traslazione Y |
Matrix(RectangleF rect, PointF[] plgpts)
public Matrix(RectangleF rect, PointF[] plgpts)
Inizializza una nuova istanza della classe Matrix alla trasformazione geometrica definita dal rettangolo specificato e dall’array di punti.
Parameters:
| Parametro | Tipo | Descrizione |
|---|---|---|
| rect | RectangleF | Una struttura RectangleF che rappresenta il rettangolo da trasformare. |
| plgpts | PointF[] | Un array di tre strutture PointF che rappresentano i punti di un parallelogramma verso il quale verranno trasformati gli angoli superiore sinistro, superiore destro e inferiore sinistro del rettangolo. L’angolo inferiore destro del parallelogramma è implicito nei primi tre angoli. |
Matrix(Rectangle rect, Point[] plgpts)
public Matrix(Rectangle rect, Point[] plgpts)
Inizializza una nuova istanza della classe Matrix alla trasformazione geometrica definita dal rettangolo specificato e dall’array di punti.
Parameters:
| Parametro | Tipo | Descrizione |
|---|---|---|
| rect | Rectangle | Una struttura Rectangle che rappresenta il rettangolo da trasformare. |
| plgpts | Point[] | Un array di tre strutture Point che rappresentano i punti di un parallelogramma verso il quale verranno trasformati gli angoli superiore sinistro, superiore destro e inferiore sinistro del rettangolo. L’angolo inferiore destro del parallelogramma è implicito nei primi tre angoli. |
Matrix(Matrix origin)
public Matrix(Matrix origin)
Crea una copia della classe Matrix.
Parameters:
| Parametro | Tipo | Descrizione |
|---|---|---|
| origin | Matrix | Una matrice di base per l’adattamento. |
TYPE_IDENTITY
public static final int TYPE_IDENTITY
Una trasformazione identità è quella in cui le coordinate di output sono sempre le stesse delle coordinate di input. Se questa trasformazione è diversa dalla trasformazione identità, il tipo sarà o la costante GENERAL_TRANSFORM o una combinazione dei flag appropriati per le varie conversioni di coordinate che questa trasformazione esegue.
TYPE_TRANSLATION
public static final int TYPE_TRANSLATION
Una traslazione sposta le coordinate di una quantità costante in x e y senza modificare la lunghezza o l’angolo dei vettori.
TYPE_UNIFORM_SCALE
public static final int TYPE_UNIFORM_SCALE
Una scala uniforme moltiplica la lunghezza dei vettori della stessa quantità sia nella direzione x che nella direzione y senza modificare l’angolo tra i vettori. Questo bit di flag è mutuamente esclusivo dal flag TypeGeneralScale.
TYPE_GENERAL_SCALE
public static final int TYPE_GENERAL_SCALE
Una scala generale moltiplica la lunghezza dei vettori di quantità diverse nelle direzioni x e y senza modificare l’angolo tra vettori perpendicolari. Questo bit di flag è mutuamente esclusivo dal flag TypeUniformScale.
TYPE_MASK_SCALE
public static final int TYPE_MASK_SCALE
Questa costante è una maschera di bit per uno qualsiasi dei bit di flag di scala.
TYPE_FLIP
public static final int TYPE_FLIP
Questo bit di flag indica che la trasformazione definita da questo oggetto esegue un ribaltamento a specchio attorno a qualche asse, il quale trasforma il normale sistema di coordinate destro in un sistema sinistro, oltre alle conversioni indicate dagli altri bit di flag. Un sistema di coordinate destro è quello in cui l’asse X positivo ruota in senso antiorario per sovrapporsi all’asse Y positivo, simile alla direzione in cui le dita della mano destra si avvolgono quando si guarda il pollice di profilo. Un sistema di coordinate sinistro è quello in cui l’asse X positivo ruota in senso orario per sovrapporsi all’asse Y positivo, simile alla direzione in cui le dita della mano sinistra si avvolgono. Non esiste un metodo matematico per determinare l’angolo della trasformazione di ribaltamento o specchiatura originale, poiché tutti gli angoli di ribaltamento sono identici dato un’adeguata rotazione di aggiustamento. NOTA: TypeFlip è stato aggiunto dopo che GENERAL_TRANSFORM era già in circolazione pubblica e i bit di flag non potevano più essere rinumerati comodamente senza introdurre incompatibilità binarie nel codice esterno.
TYPE_QUADRANT_ROTATION
public static final int TYPE_QUADRANT_ROTATION
Questo bit di flag indica che la trasformazione definita da questo oggetto esegue una rotazione di quadrante di un multiplo di 90 gradi, oltre alle conversioni indicate dagli altri bit di flag. Una rotazione modifica gli angoli dei vettori della stessa quantità indipendentemente dalla direzione originale del vettore e senza alterare la lunghezza del vettore. Questo bit di flag è mutuamente esclusivo dal flag TypeGeneralRotation.
TYPE_GENERAL_ROTATION
public static final int TYPE_GENERAL_ROTATION
Questo bit di flag indica che la trasformazione definita da questo oggetto esegue una rotazione di un angolo arbitrario oltre alle conversioni indicate da altri bit di flag. Una rotazione cambia gli angoli dei vettori della stessa quantità indipendentemente dalla direzione originale del vettore e senza modificare la lunghezza del vettore. Questo bit di flag è mutuamente esclusivo con il
TYPE_MASK_ROTATION
public static final int TYPE_MASK_ROTATION
Questa costante è una maschera di bit per uno qualsiasi dei bit di flag di rotazione.
TYPE_GENERAL_TRANSFORM
public static final int TYPE_GENERAL_TRANSFORM
Questa costante indica che la trasformazione definita da questo oggetto esegue una conversione arbitraria delle coordinate di input. Se questa trasformazione può essere classificata da una delle costanti sopra, il tipo sarà oppure la costante TypeIdentity oppure una combinazione dei bit di flag appropriati per le varie conversioni di coordinate che questa trasformazione esegue.
isEquals(Matrix a, Matrix b)
public static boolean isEquals(Matrix a, Matrix b)
Determina se due matrici sono uguali.
Parameters:
| Parametro | Tipo | Descrizione |
|---|---|---|
| a | Matrix | La prima matrice da confrontare. |
| b | Matrix | La seconda matrice da confrontare. |
Returns: boolean - True se le matrici sono uguali.
getM11()
public final float getM11()
Restituisce l’elemento della matrice alla prima riga prima colonna. Rappresenta la scala lungo l’asse X.
Returns: float - l’elemento della matrice alla prima riga prima colonna.
getM12()
public final float getM12()
Restituisce l’elemento della matrice alla prima riga seconda colonna. Rappresenta lo shear lungo l’asse Y.
Returns: float - l’elemento della matrice alla prima riga seconda colonna.
getM21()
public final float getM21()
Restituisce l’elemento della matrice alla seconda riga prima colonna. Rappresenta lo shear lungo l’asse X.
Returns: float - l’elemento della matrice alla seconda riga prima colonna.
getM22()
public final float getM22()
Restituisce l’elemento della matrice alla seconda riga seconda colonna. Rappresenta la scala lungo l’asse Y.
Returns: float - l’elemento della matrice alla seconda riga seconda colonna.
getM31()
public final float getM31()
Restituisce l’elemento della matrice alla terza riga prima colonna. Rappresenta la traslazione lungo l’asse X.
Returns: float - l’elemento della matrice alla terza riga prima colonna.
getM32()
public final float getM32()
Restituisce l’elemento della matrice alla terza riga prima colonna. Rappresenta la traslazione lungo l’asse Y.
Returns: float - l’elemento della matrice alla terza riga prima colonna.
toString()
public String toString()
Restituisce una String che rappresenta questa istanza.
Returns: java.lang.String - Una stringa che rappresenta questa istanza.
getElements()
public final float[] getElements()
Restituisce una copia degli elementi della matrice.
Returns: float[] - Una copia degli elementi della matrice.
transformPoints(PointF[] points)
public final void transformPoints(PointF[] points)
Applica la trasformazione geometrica rappresentata da questa Matrix a un array specificato di punti.
Parameters:
| Parametro | Tipo | Descrizione |
|---|---|---|
| points | PointF[] | I punti. |
scale(float scaleX, float scaleY, int order)
public final void scale(float scaleX, float scaleY, int order)
Applica il vettore di scala specificato (scaleX e scaleY) a questa Matrix usando l’ordine specificato.
Parameters:
| Parametro | Tipo | Descrizione |
|---|---|---|
| scaleX | float | La scala X. |
| scaleY | float | La scala Y. |
| order | int | L’ordine. |
scale(float sx, float sy)
public final void scale(float sx, float sy)
Applica il vettore di scala specificato (scaleX e scaleY) a questa Matrix usando l’ordine (predefinito) Prepend.
Parameters:
| Parametro | Tipo | Descrizione |
|---|---|---|
| sx | float | Il sx. Il sx. Il sx. |
| sy | float | Il sy. Il sy. Il sy. |
translate(float offsetX, float offsetY, int order)
public final void translate(float offsetX, float offsetY, int order)
Applica il vettore di traslazione specificato a questa Matrix nell’ordine specificato.
Parameters:
| Parametro | Tipo | Descrizione |
|---|---|---|
| offsetX | float | L’offset X. |
| offsetY | float | L’offset Y. |
| order | int | L’ordine. |
translate(float tx, float ty)
public final void translate(float tx, float ty)
Applica il vettore di traslazione specificato a questa Matrix usando l’ordine (predefinito) Prepend.
Parameters:
| Parametro | Tipo | Descrizione |
|---|---|---|
| tx | float | Il tx. Il tx. Il tx. |
| ty | float | Il ty. Il ty. Il ty. |
multiply(Matrix tTx, int order)
public final void multiply(Matrix tTx, int order)
Moltiplica questa Matrix per la matrice specificata nel parametro matrix e nell’ordine specificato nel parametro order.
Parameters:
| Parametro | Tipo | Descrizione |
|---|---|---|
| tTx | Matrix | Il tx. Il tx. Il tx. |
| order | int | L’ordine. L’ordine. L’ordine. |
multiply(Matrix tTx)
public final void multiply(Matrix tTx)
Moltiplica questa Matrix per la matrice specificata nel parametro matrix usando l’ordine (predefinito) Prepend.
Parameters:
| Parametro | Tipo | Descrizione |
|---|---|---|
| tTx | Matrix | La matrice con cui moltiplicare. |
rotate(float angle, int order)
public final void rotate(float angle, int order)
Applica una rotazione in senso orario di un valore specificato nel parametro angle, attorno all’origine (coordinate x e y zero) per questa Matrix nell’ordine specificato.
Parameters:
| Parametro | Tipo | Descrizione |
|---|---|---|
| angle | float | L’angolo di rotazione. |
| order | int | L’ordine della matrice. |
rotate(float angle)
public final void rotate(float angle)
Applica una rotazione in senso orario di un valore specificato nel parametro angle, attorno all’origine (coordinate x e y zero) per questa Matrix nell’ordine predefinito (Prepend).
Parameters:
| Parametro | Tipo | Descrizione |
|---|---|---|
| angle | float | L’angolo di rotazione. |
rotateAt(float angle, PointF point, int order)
public final void rotateAt(float angle, PointF point, int order)
Applica una rotazione in senso orario attorno al punto specificato a questa Matrix nell’ordine specificato.
Parameters:
| Parametro | Tipo | Descrizione |
|---|---|---|
| angle | float | L’angolo. |
| point | PointF | Il punto. |
| order | int | L’ordine. |
rotateAt(float angle, PointF point)
public final void rotateAt(float angle, PointF point)
Applica una rotazione in senso orario attorno al punto specificato a questa Matrix nell’ordine predefinito (Prepend).
Parameters:
| Parametro | Tipo | Descrizione |
|---|---|---|
| angle | float | L’angolo. |
| point | PointF | Il punto. |
reset()
public final void reset()
Reimposta questa Matrice in modo che contenga gli elementi della matrice identità.
hashCode()
public int hashCode()
Restituisce un codice hash per questa istanza.
Returns: int - Un codice hash per questa istanza, adatto per l’uso in algoritmi di hashing e strutture dati come una tabella hash.
equals(Object obj)
public boolean equals(Object obj)
Determina se l’Object specificato è uguale a questa istanza.
Parameters:
| Parametro | Tipo | Descrizione |
|---|---|---|
| obj | java.lang.Object | L’Object da confrontare con questa istanza. |
Returns:
boolean - true se l’Object specificato è uguale a questa istanza; altrimenti, false.
isIdentity()
public boolean isIdentity()
Restituisce true se questo AffineTransform è una trasformazione identità.
Returns:
boolean - true se questo AffineTransform è una trasformazione identità; false altrimenti.