Pacchetto | flash.geom |
Classe | public class Matrix |
Ereditarietà | Matrix Object |
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
matrix
di un oggetto Transform e applicando quindi l'oggetto Transform come proprietà transform
dell'oggetto di visualizzazione. Queste funzioni di trasformazione includono conversione (riposizionamento di x e y), rotazione, modifica in scala e inclinazione.
Questi tipi di trasformazioni sono noti collettivamente come trasformazioni affini. Poiché le trasformazioni affini mantengono la rettilineità delle linee durante la trasformazione, le linee parallele rimangono tali.
Per applicare una matrice di trasformazione a un oggetto di visualizzazione, creare un oggetto Transform, impostarne la proprietà matrix
sulla matrice di trasformazione e quindi impostare la proprietà transform
dell'oggetto di visualizzazione sull'oggetto Transform. Gli oggetti Matrix vengono anche utilizzati come parametri di alcuni metodi, ad esempio i seguenti:
- Il metodo
draw()
di un oggetto BitmapData. - Il metodo
beginBitmapFill()
,beginGradientFill()
olineGradientStyle()
di un oggetto Graphics.
Un oggetto matrice di trasformazione è una matrice 3 x 3 con il contenuto seguente:
Nelle matrici di trasformazione tradizionali, le proprietà u
, v
e w
offrono funzioni supplementari. La classe Matrix funziona solo in spazi bidimensionali e, pertanto, i valori delle proprietà u
e v
sono sempre considerati pari a 0.0 e il valore della proprietà w
è sempre 1.0. I valori effettivi della matrice sono i seguenti:
È possibile ottenere e impostare i valori di tutte le altre sei proprietà di un oggetto Matrix, ovvero a
, b
, c
, d
, tx
ety
.
La classe Matrix supporta i quattro principali tipi di trasformazioni: conversione, modifica in scala, rotazione e inclinazione. Tre di queste trasformazioni si possono impostare tramite metodi specializzati, descritti nella tabella seguente:
Trasformazione | Metodo | Valori di Matrix | Risultato visualizzato | Descrizione |
---|---|---|---|---|
Conversione (spostamento) |
translate(tx, ty)
| Sposta i pixel tx dell'immagine a destra e i pixel ty in basso. | ||
Modifica in scala |
scale(sx, sy)
| Ridimensiona l'immagine, moltiplicando la posizione di ogni pixel per sx sull'asse x e per sy sull'asse y. | ||
Rotazione |
rotate(q)
| Ruota l'immagine di un angolo q , che viene misurato in radianti. | ||
Inclinazione o ritaglio | Nessuno; è necessario impostare le proprietà b e c . | Fa scorrere progressivamente l'immagine in una direzione parallela all'asse x o y. La proprietà b dell'oggetto Matrix rappresenta la tangente dell'angolo di inclinazione lungo l'asse y; la proprietà c dell'oggetto Matrix rappresenta la tangente dell'angolo di inclinazione lungo l'asse x. |
Ogni funzione di trasformazione modifica le proprietà correnti della matrice e consente così di combinare efficacemente più trasformazioni. Per eseguire questa operazione, chiamate più funzioni di trasformazione prima di applicare la matrice all'oggetto di visualizzazione target (utilizzando la proprietà transform
dell'oggetto di visualizzazione).
Per poter chiamare i metodi dell'oggetto Matrix, è necessario prima creare un oggetto Matrix mediante la funzione di costruzione new Matrix()
.
Altri esempi
Altre informazioni
Elementi API correlati
flash.geom.Transform
flash.display.BitmapData.draw()
flash.display.Graphics.beginBitmapFill()
flash.display.Graphics.beginGradientFill()
flash.display.Graphics.lineGradientStyle()
Proprietà | Definito da | ||
---|---|---|---|
a : Number
Il valore che determina il posizionamento dei pixel lungo l'asse x durante il ridimensionamento o la rotazione di un'immagine. | Matrix | ||
b : Number
Il valore che determina il posizionamento dei pixel lungo l'asse y durante la rotazione o l'inclinazione di un'immagine. | Matrix | ||
c : Number
Il valore che determina il posizionamento dei pixel lungo l'asse x durante la rotazione o l'inclinazione di un'immagine. | Matrix | ||
constructor : Object
Un riferimento all'oggetto classe o alla funzione di costruzione per una determinata istanza di oggetto. | Object | ||
d : Number
Il valore che determina il posizionamento dei pixel lungo l'asse y durante il ridimensionamento o la rotazione di un'immagine. | Matrix | ||
tx : Number
La distanza in base alla quale viene convertito ogni punto lungo l'asse x. | Matrix | ||
ty : Number
La distanza in base alla quale viene convertito ogni punto lungo l'asse y. | Matrix |
Metodo | Definito da | ||
---|---|---|---|
Crea un nuovo oggetto Matrix con i parametri specificati. | Matrix | ||
Restituisce un nuovo oggetto Matrix, clone di questa matrice, con una copia esatta dell'oggetto contenuto. | Matrix | ||
Concatena una matrice con la matrice corrente, combinando gli effetti geometrici delle due matrici. | Matrix | ||
Copia un oggetto Vector3D in una colonna specifica dell'oggetto Matrix3D chiamante. | Matrix | ||
Copia una colonna specifica dell'oggetto Matrix chiamante nell'oggetto Vector3D. | Matrix | ||
Copia tutti i dati di matrice dall'oggetto Point di origine all'oggetto Matrix chiamante. | Matrix | ||
Copia un oggetto Vector3D in una riga specifica dell'oggetto Matrix chiamante. | Matrix | ||
Copia una riga specifica dell'oggetto Matrix chiamante nell'oggetto Vector3D. | Matrix | ||
Comprende parametri per la modifica in scala, la rotazione e la conversione. | Matrix | ||
createGradientBox(width:Number, height:Number, rotation:Number = 0, tx:Number = 0, ty:Number = 0):void
Crea lo stile di matrice specifico previsto dai metodi beginGradientFill() e lineGradientStyle() della classe Graphics. | Matrix | ||
Dato un punto nello spazio di coordinate pre-trasformazione, questo metodo restituisce le coordinate di tale punto dopo l'avvenuta trasformazione. | Matrix | ||
Indica se per un oggetto è definita una proprietà specifica. | Object | ||
Imposta ogni proprietà della matrice su un valore che determina una trasformazione null. | Matrix | ||
Esegue la trasformazione opposta rispetto alla matrice originale. | Matrix | ||
Indica se un'istanza della classe Object si trova nella catena di prototipi dell'oggetto specificato come parametro. | Object | ||
Indica se la proprietà specificata esiste ed è enumerabile. | Object | ||
Applica una trasformazione di rotazione all'oggetto Matrix. | Matrix | ||
Applica una trasformazione in scala alla matrice. | Matrix | ||
Imposta la disponibilità di una proprietà dinamica per le operazioni cicliche. | Object | ||
Imposta i membri dell'oggetto Matrix sui valori specificati.
| Matrix | ||
Restituisce la rappresentazione in formato stringa di questo oggetto, formattato in base alle convenzioni specifiche per le versioni localizzate. | Object | ||
Restituisce un valore di testo che elenca le proprietà dell'oggetto Matrix. | Matrix | ||
Restituisce il risultato dell'applicazione al punto specificato della trasformazione geometrica rappresentata dall'oggetto Matrix. | Matrix | ||
Converte la matrice lungo gli assi x e y come specificato dai parametri dx e dy. | Matrix | ||
Restituisce il valore di base dell'oggetto specificato. | Object |
a | proprietà |
public var a:Number
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Il valore che determina il posizionamento dei pixel lungo l'asse x durante il ridimensionamento o la rotazione di un'immagine.
Esempio ( Come utilizzare questo esempio )
myMatrix
e ne viene impostato il valore a
.
import flash.geom.Matrix; var myMatrix:Matrix = new Matrix(); trace(myMatrix.a); // 1 myMatrix.a = 2; trace(myMatrix.a); // 2
b | proprietà |
public var b:Number
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Il valore che determina il posizionamento dei pixel lungo l'asse y durante la rotazione o l'inclinazione di un'immagine.
Esempio ( Come utilizzare questo esempio )
myMatrix
e ne viene impostato il valore b
.
import flash.geom.Matrix; var myMatrix:Matrix = new Matrix(); trace(myMatrix.b); // 0 var degrees:Number = 30; var radians:Number = (degrees/180) * Math.PI; myMatrix.b = Math.tan(radians); trace(myMatrix.b); // 0.5773502691896257
c | proprietà |
public var c:Number
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Il valore che determina il posizionamento dei pixel lungo l'asse x durante la rotazione o l'inclinazione di un'immagine.
Esempio ( Come utilizzare questo esempio )
myMatrix
e ne viene viene impostato il valore c
.
import flash.geom.Matrix; var myMatrix:Matrix = new Matrix(); trace(myMatrix.c); // 0 var degrees:Number = 30; var radians:Number = (degrees/180) * Math.PI; myMatrix.c = Math.tan(radians); trace(myMatrix.c); // 0.5773502691896257
d | proprietà |
public var d:Number
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Il valore che determina il posizionamento dei pixel lungo l'asse y durante il ridimensionamento o la rotazione di un'immagine.
Esempio ( Come utilizzare questo esempio )
myMatrix
, di cui viene impostato il valore d
.
import flash.geom.Matrix; var myMatrix:Matrix = new Matrix(); trace(myMatrix.d); // 1 myMatrix.d = 2; trace(myMatrix.d); // 2
tx | proprietà |
public var tx:Number
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
La distanza in base alla quale viene convertito ogni punto lungo l'asse x.
Esempio ( Come utilizzare questo esempio )
myMatrix
, di cui viene impostato il valore tx
.
import flash.geom.Matrix; var myMatrix:Matrix = new Matrix(); trace(myMatrix.tx); // 0 myMatrix.tx = 50; // 50 trace(myMatrix.tx);
ty | proprietà |
public var ty:Number
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
La distanza in base alla quale viene convertito ogni punto lungo l'asse y.
Esempio ( Come utilizzare questo esempio )
myMatrix
e ne viene impostato il valore ty
.
import flash.geom.Matrix; var myMatrix:Matrix = new Matrix(); trace(myMatrix.ty); // 0 myMatrix.ty = 50; trace(myMatrix.ty); // 50
Matrix | () | Funzione di costruzione |
public function Matrix(a:Number = 1, b:Number = 0, c:Number = 0, d:Number = 1, tx:Number = 0, ty:Number = 0)
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Crea un nuovo oggetto Matrix con i parametri specificati. Nella notazione della matrice, le proprietà vengono organizzate nel modo seguente:
Se non specificate parametri per la funzione di costruzione new Matrix()
, viene creata una matrice di identità con i valori seguenti:
Nella notazione della matrice, la matrice di identità sarà simile alla seguente:
Parametria:Number (default = 1 ) — Il valore che determina il posizionamento dei pixel lungo l'asse x durante il ridimensionamento o la rotazione di un'immagine.
| |
b:Number (default = 0 ) — Il valore che determina il posizionamento dei pixel lungo l'asse y durante la rotazione o l'inclinazione di un'immagine.
| |
c:Number (default = 0 ) — Il valore che determina il posizionamento dei pixel lungo l'asse x durante la rotazione o l'inclinazione di un'immagine.
| |
d:Number (default = 1 ) — Il valore che determina il posizionamento dei pixel lungo l'asse y durante il ridimensionamento o la rotazione di un'immagine.
| |
tx:Number (default = 0 ) — La distanza in base alla quale viene convertito ogni punto lungo l'asse x.
| |
ty:Number (default = 0 ) — La distanza in base alla quale viene convertito ogni punto lungo l'asse y.
|
Esempio ( Come utilizzare questo esempio )
matrix_1
senza inviare alcun parametro alla funzione di costruzione Matrix()
e matrix_2
inviando invece dei parametri. Si noti che matrix_1
, creato senza l'invio di parametri, determina la creazione di una matrice di identità con i valori a
=1, b
=0, c
=0, d
=1, tx
=0, ty
=0.
import flash.geom.Matrix; var matrix_1:Matrix = new Matrix(); trace(matrix_1); // (a=1, b=0, c=0, d=1, tx=0, ty=0) var matrix_2:Matrix = new Matrix(1, 2, 3, 4, 5, 6); trace(matrix_2); // (a=1, b=2, c=3, d=4, tx=5, ty=6)
clone | () | metodo |
concat | () | metodo |
public function concat(m:Matrix):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Concatena una matrice con la matrice corrente, combinando gli effetti geometrici delle due matrici. In termini matematici, il concatenamento di due matrici equivale alla loro combinazione mediante la moltiplicazione di matrici.
Se ad esempio la matrice m1
modifica in scala un oggetto in base a un fattore 4 e la matrice m2
ruota un oggetto di 1,5707963267949 radianti (Math.PI/2
), m1.concat(m2)
trasforma m1
in una matrice che modifica in scala un oggetto in base a un fattore 4 e lo ruota di Math.PI/2
radianti.
Questo metodo sostituisce la matrice di origine con la matrice concatenata. Se desiderate concatenare due matrici senza modificare le due matrici di origine, copiate per prima cosa la matrice di origine con il metodo clone()
, come illustrato nella sezione relativa agli esempi di classi.
Parametri
m:Matrix — La matrice da concatenare alla matrice di origine.
|
copyColumnFrom | () | metodo |
public function copyColumnFrom(column:uint, vector3D:Vector3D):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 11, AIR 3.0, Flash Lite 4 |
Copia un oggetto Vector3D in una colonna specifica dell'oggetto Matrix3D chiamante.
Parametri
column:uint — La colonna da cui copiare i dati.
| |
vector3D:Vector3D — L'oggetto Vector3D da cui copiare i dati.
|
copyColumnTo | () | metodo |
public function copyColumnTo(column:uint, vector3D:Vector3D):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 11, AIR 3.0, Flash Lite 4 |
Copia una colonna specifica dell'oggetto Matrix chiamante nell'oggetto Vector3D. L'elemento w dell'oggetto Vector3D non viene modificato.
Parametri
column:uint — La colonna da cui copiare i dati.
| |
vector3D:Vector3D — L'oggetto Vector3D da cui copiare i dati.
|
copyFrom | () | metodo |
public function copyFrom(sourceMatrix:Matrix):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 11, AIR 3.0, Flash Lite 4 |
Copia tutti i dati di matrice dall'oggetto Point di origine all'oggetto Matrix chiamante.
Parametri
sourceMatrix:Matrix — L'oggetto Matrix da cui copiare i dati.
|
copyRowFrom | () | metodo |
public function copyRowFrom(row:uint, vector3D:Vector3D):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 11, AIR 3.0, Flash Lite 4 |
Copia un oggetto Vector3D in una riga specifica dell'oggetto Matrix chiamante.
Parametri
row:uint — La riga da cui copiare i dati.
| |
vector3D:Vector3D — L'oggetto Vector3D da cui copiare i dati.
|
copyRowTo | () | metodo |
public function copyRowTo(row:uint, vector3D:Vector3D):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 11, AIR 3.0, Flash Lite 4 |
Copia una riga specifica dell'oggetto Matrix chiamante nell'oggetto Vector3D. L'elemento w dell'oggetto Vector3D non viene modificato.
Parametri
row:uint — La riga da cui copiare i dati.
| |
vector3D:Vector3D — L'oggetto Vector3D da cui copiare i dati.
|
createBox | () | metodo |
public function createBox(scaleX:Number, scaleY:Number, rotation:Number = 0, tx:Number = 0, ty:Number = 0):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Comprende parametri per la modifica in scala, la rotazione e la conversione. Quando viene applicato a una matrice, ne imposta i valori in base a tali parametri.
Il metodo createBox()
consente di ottenere la stessa matrice che si otterrebbe applicando in successione i metodi identity()
, rotate()
, scale()
e translate()
. Ad esempio, mat1.createBox(2,2, Math.PI/4, 100, 100)
ha lo stesso effetto di:
import flash.geom.Matrix; var mat1:Matrix = new Matrix(); mat1.identity(); mat1.rotate(Math.PI/4); mat1.scale(2,2); mat1.translate(10,20);
Parametri
scaleX:Number — Il fattore in base al quale impostare la scala orizzontalmente.
| |
scaleY:Number — Il fattore in base al quale impostare la scala verticalmente.
| |
rotation:Number (default = 0 ) — La quantità di rotazione, espressa in radianti.
| |
tx:Number (default = 0 ) — Il numero di pixel per la conversione (spostamento) a destra lungo l'asse x.
| |
ty:Number (default = 0 ) — Il numero di pixel per la conversione (spostamento) in basso lungo l'asse y.
|
Altri esempi
Elementi API correlati
Esempio ( Come utilizzare questo esempio )
myMatrix
con una chiamata al metodo createBox
().
package { import flash.display.Shape; import flash.display.Sprite; import flash.geom.Matrix; import flash.geom.Transform; public class Matrix_createBox extends Sprite { public function Matrix_createBox() { var myMatrix:Matrix = new Matrix(); trace(myMatrix.toString()); // (a=1, b=0, c=0, d=1, tx=0, ty=0) myMatrix.createBox(1, 2, Math.PI/4, 50, 100); trace(myMatrix.toString()); // (a=0.7071067811865476, b=1.414213562373095, c=-0.7071067811865475, // d=1.4142135623730951, tx=50, ty=100) var rectangleShape:Shape = createRectangle(20, 80, 0xFF0000); addChild(rectangleShape); var rectangleTrans:Transform = new Transform(rectangleShape); rectangleTrans.matrix = myMatrix; } public function createRectangle(w:Number, h:Number, color:Number):Shape { var rect:Shape = new Shape(); rect.graphics.beginFill(color); rect.graphics.drawRect(0, 0, w, h); addChild(rect); return rect; } } }
createGradientBox | () | metodo |
public function createGradientBox(width:Number, height:Number, rotation:Number = 0, tx:Number = 0, ty:Number = 0):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Crea lo stile di matrice specifico previsto dai metodi beginGradientFill()
e lineGradientStyle()
della classe Graphics. La larghezza e l'altezza vengono modificate in scala in base alla coppia scaleX
/scaleY
e i valori tx
/ty
vengono spostati della metà della larghezza e dell'altezza.
Considerate ad esempio un gradiente con le seguenti caratteristiche:
GradientType.LINEAR
- Due colori, verde e blu, con gli array ratios impostati su
[0, 255]
SpreadMethod.PAD
InterpolationMethod.LINEAR_RGB
Le figure seguenti mostrano dei gradienti in cui la matrice è stata definita con il metodo createGradientBox()
con varie impostazioni dei parametri:
Impostazioni di createGradientBox() | Gradiente risultante |
---|---|
width = 25; height = 25; rotation = 0; tx = 0; ty = 0; | |
width = 25; height = 25; rotation = 0; tx = 25; ty = 0; | |
width = 50; height = 50; rotation = 0; tx = 0; ty = 0; | |
width = 50; height = 50; rotation = Math.PI / 4; // 45 degrees tx = 0; ty = 0; |
Parametri
width:Number — La larghezza del riquadro con gradiente.
| |
height:Number — L'altezza del riquadro con gradiente.
| |
rotation:Number (default = 0 ) — La quantità di rotazione, espressa in radianti.
| |
tx:Number (default = 0 ) — La distanza, espressa in pixel, per la conversione a destra lungo l'asse x. Questo valore viene spostato di un valore pari alla metà del parametro width .
| |
ty:Number (default = 0 ) — La distanza, espressa in pixel, per la conversione in basso lungo l'asse y. Questo valore viene spostato di un valore pari alla metà del parametro height .
|
Altri esempi
Elementi API correlati
Esempio ( Come utilizzare questo esempio )
myMatrix
con una chiamata al metodo createBox
().
package { import flash.display.GradientType; import flash.display.Sprite; import flash.geom.Matrix; public class Matrix_createGradientBox extends Sprite { public function Matrix_createGradientBox() { var myMatrix:Matrix = new Matrix(); trace(myMatrix.toString()); // (a=1, b=0, c=0, d=1, tx=0, ty=0) myMatrix.createGradientBox(200, 200, 0, 50, 50); trace(myMatrix.toString()); // (a=0.1220703125, b=0, c=0, d=0.1220703125, tx=150, ty=150) var colors:Array = [0xFF0000, 0x0000FF]; var alphas:Array = [100, 100]; var ratios:Array = [0, 0xFF]; this.graphics.beginGradientFill(GradientType.LINEAR, colors, alphas, ratios, myMatrix); this.graphics.drawRect(0, 0, 300, 200); } } }
deltaTransformPoint | () | metodo |
public function deltaTransformPoint(point:Point):Point
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Dato un punto nello spazio di coordinate pre-trasformazione, questo metodo restituisce le coordinate di tale punto dopo l'avvenuta trasformazione. A differenza della trasformazione standard applicata mediante il metodo transformPoint()
, la trasformazione del metodo deltaTransformPoint()
non prende in considerazione i parametri di conversione tx
e ty
.
Parametri
point:Point — Il punto per cui si desidera ottenere il risultato della trasformazione di matrice.
|
Point — Il punto risultante dall'applicazione della trasformazione di matrice.
|
identity | () | metodo |
public function identity():void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Imposta ogni proprietà della matrice su un valore che determina una trasformazione null. Un oggetto trasformato applicando una matrice di identità è identico all'originale.
Dopo la chiamata del metodo identity()
, le proprietà della matrice risultante sono le seguenti: a
=1, b
=0, c
=0, d
=1, tx
=0, ty
=0.
Nella notazione della matrice, la matrice di identità sarà simile alla seguente:
invert | () | metodo |
public function invert():void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Esegue la trasformazione opposta rispetto alla matrice originale. Per annullare la trasformazione eseguita con l'applicazione della matrice originale è possibile applicare una matrice invertita a un oggetto.
Esempio ( Come utilizzare questo esempio )
halfScaleMatrix
mediante una chiamata al metodo invert()
di doubleScaleMatrix
. Viene quindi dimostrato che le due matrici sono reciprocamente inverse (ovvero una matrice annulla qualsiasi trasformazione eseguita dall'altra) mediante la creazione di originalAndInverseMatrix
che risulta uguale a noScaleMatrix
.
package { import flash.display.Shape; import flash.display.Sprite; import flash.geom.Matrix; import flash.geom.Transform; public class Matrix_invert extends Sprite { public function Matrix_invert() { var rect0:Shape = createRectangle(20, 80, 0xFF0000); var rect1:Shape = createRectangle(20, 80, 0x00FF00); var rect2:Shape = createRectangle(20, 80, 0x0000FF); var rect3:Shape = createRectangle(20, 80, 0x000000); var trans0:Transform = new Transform(rect0); var trans1:Transform = new Transform(rect1); var trans2:Transform = new Transform(rect2); var trans3:Transform = new Transform(rect3); var doubleScaleMatrix:Matrix = new Matrix(2, 0, 0, 2, 0, 0); trans0.matrix = doubleScaleMatrix; trace(doubleScaleMatrix.toString()); // (a=2, b=0, c=0, d=2, tx=0, ty=0) var noScaleMatrix:Matrix = new Matrix(1, 0, 0, 1, 0, 0); trans1.matrix = noScaleMatrix; rect1.x = 50; trace(noScaleMatrix.toString()); // (a=1, b=0, c=0, d=1, tx=0, ty=0) var halfScaleMatrix:Matrix = doubleScaleMatrix.clone(); halfScaleMatrix.invert(); trans2.matrix = halfScaleMatrix; rect2.x = 100; trace(halfScaleMatrix.toString()); // (a=0.5, b=0, c=0, d=0.5, tx=0, ty=0) var originalAndInverseMatrix:Matrix = doubleScaleMatrix.clone(); originalAndInverseMatrix.concat(halfScaleMatrix); trans3.matrix = originalAndInverseMatrix; rect3.x = 150; trace(originalAndInverseMatrix.toString()); // (a=1, b=0, c=0, d=1, tx=0, ty=0) } public function createRectangle(w:Number, h:Number, color:Number):Shape { var rect:Shape = new Shape(); rect.graphics.beginFill(color); rect.graphics.drawRect(0, 0, w, h); addChild(rect); return rect; } } }
rotate | () | metodo |
public function rotate(angle:Number):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Applica una trasformazione di rotazione all'oggetto Matrix.
Il metodo rotate()
modifica le proprietà a
, b
, c
e d
dell'oggetto Matrix. Nella notazione della matrice, questo equivale a concatenare la matrice corrente con:
Parametri
angle:Number — L'angolo di rotazione in radianti.
|
Altri esempi
scale | () | metodo |
public function scale(sx:Number, sy:Number):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Applica una trasformazione in scala alla matrice. L'asse x viene moltiplicato per sx
, l'asse y per sy
.
Il metodo scale()
modifica le proprietà a
e d
dell'oggetto Matrix. Nella notazione della matrice, questo equivale a concatenare la matrice corrente con la seguente matrice:
Parametri
sx:Number — Un moltiplicatore utilizzato per modificare in scala l'oggetto lungo l'asse x.
| |
sy:Number — Un moltiplicatore utilizzato per modificare in scala l'oggetto lungo l'asse y.
|
Altri esempi
setTo | () | metodo |
public function setTo(aa:Number, ba:Number, ca:Number, da:Number, txa:Number, tya:Number):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | Flash Player 11, AIR 3.0, Flash Lite 4 |
Imposta i membri dell'oggetto Matrix sui valori specificati.
Parametri
aa:Number — I valori su cui impostare la matrice.
| |
ba:Number | |
ca:Number | |
da:Number | |
txa:Number | |
tya:Number |
toString | () | metodo |
public function toString():String
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Restituisce un valore di testo che elenca le proprietà dell'oggetto Matrix.
RestituisceString — Una stringa contenente i valori delle proprietà dell'oggetto Matrix: a , b , c , d , tx ety .
|
transformPoint | () | metodo |
public function transformPoint(point:Point):Point
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Restituisce il risultato dell'applicazione al punto specificato della trasformazione geometrica rappresentata dall'oggetto Matrix.
Parametri
point:Point — Il punto per cui si desidera ottenere il risultato della trasformazione di matrice.
|
Point — Il punto risultante dall'applicazione della trasformazione di matrice.
|
translate | () | metodo |
public function translate(dx:Number, dy:Number):void
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Converte la matrice lungo gli assi x e y come specificato dai parametri dx
e dy
.
Parametri
dx:Number — La quantità di spostamento a destra lungo l'asse x, espressa in pixel.
| |
dy:Number — La quantità di spostamento in basso lungo l'asse y, espressa in pixel.
|
Altri esempi
MatrixExample
per illustrare come creare un quadrato di grandi dimensioni contenente un riempimento con gradiente. Questa operazione viene eseguita mediante la procedura seguente:
- L'applicazione crea un nuovo oggetto Matrix
myMatrix
e utilizza il metodotrace()
per produrre i valori predefiniti delle proprietà per l'oggettomyMatrix
. - L'applicazione chiama
createGradientBox()
con le proprietàwidth
eheight
impostate su 200 pixel, senza effetto di rotazione e con la distanza per la conversione lungo gli assi x e y impostata su 50 pixel. - L'applicazione stampa di nuovo l'oggetto
myMatrix
per mostrare la modifica dopo la chiamata acreateGradientBox()
. - L'applicazione imposta tre variabili per controllare il riempimento del riquadro con gradiente:
colors
: imposta i colori con gradiente tra rosso uniforme e blu uniforme.alphas
: imposta l'opacità su uniforme.ratios
: imposta la distribuzione dei colori in modo che sia uguale sia per il rosso che per il blu.
- L'applicazione chiama il metodo Graphics
beginGradientFill()
, che agisce sull'oggettomyMatrix
, e chiama il metodolineTo()
, producendo come risultato il riquadro contenente il riempimento con gradiente.
package { import flash.geom.Matrix; import flash.display.Sprite; import flash.display.GradientType; public class MatrixExample extends Sprite { public function MatrixExample() { var myMatrix:Matrix = new Matrix(); trace(myMatrix.toString()); // (a=1, b=0, c=0, d=1, tx=0, ty=0) myMatrix.createGradientBox(200, 200, 0, 50, 50); trace(myMatrix.toString()); // (a=0.1220703125, b=0, c=0, d=0.1220703125, tx=150, ty=150) var colors:Array = [0xFF0000, 0x0000FF]; var alphas:Array = [1, 1]; var ratios:Array = [0, 0xFF]; graphics.beginGradientFill(GradientType.LINEAR, colors, alphas, ratios, myMatrix); graphics.lineTo(0, 300); graphics.lineTo(300, 300); graphics.lineTo(300, 0); graphics.lineTo(0, 0); } } }
Tue Jun 12 2018, 02:44 PM Z