Pakket | flash.geom |
Klasse | public class Matrix |
Overerving | Matrix Object |
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
matrix
van een object Transform en vervolgens dat object Transform toe te passen als de eigenschap transform
van het weergaveobject. Deze transformatiefuncties omvatten transleren (positie van x en y wijzigen), roteren, schalen en scheeftrekken.
Deze transformatietypen samen staan bekend als affiene transformaties. Affiene transformaties behouden de rechtheid van lijnen tijdens transformaties zodat parallelle lijnen parallel blijven.
Wanneer u een transformatiematrix op een weergaveobject wilt toepassen, maakt u een object Transform, stelt u de eigenschap matrix
ervan in op de transformatiematrix en stelt u vervolgens de eigenschap transform
van het weergaveobject in op het object Transform. Objecten Matrix worden ook gebruikt als parameters van sommige methoden, zoals:
- De methode
draw()
van een object BitmapData - De methode
beginBitmapFill()
, de methodebeginGradientFill()
of de methodelineGradientStyle()
van een object Graphics
Een transformatiematrixobject is een 3 x 3 matrix met de volgende inhoud:
In traditionele transformatiematrices bieden de eigenschappen u
, v
en w
extra mogelijkheden. De klasse Matrix werkt alleen in een tweedimensionale ruimte, dit houdt in dat de klasse altijd aanneemt dat de eigenschapwaarden u
en v
0,0 zijn en dat de eigenschapwaarde w
1,0 is. De effectieve waarden van de matrix zijn als volgt:
U kunt de waarden van alle zes de overige eigenschappen in een object Matrix ophalen en instellen: a
, b
, c
, d
, tx
en ty
.
De klasse Matrix ondersteunt de vier belangrijkste transformatiefuncties: transleren, schalen, roteren en scheeftrekken. U kunt drie van deze functies instellen met gespecialiseerde methoden, zoals in de volgende tabel wordt beschreven.
Transformatie | Methode | Matrixwaarden | Weergaveresultaat | Beschrijving |
---|---|---|---|---|
Transleren (verschuiven) |
translate(tx, ty)
| Verplaatst de afbeelding tx pixels naar rechts en ty pixels naar beneden. | ||
Schalen |
scale(sx, sy)
| Wijzigt de grootte van de afbeelding door de locatie van elke pixel met sx te vermenigvuldigen op de x-as en met sy op de y-as. | ||
Rotatie |
rotate(q)
| Roteert de afbeelding met een hoek q , gemeten in radialen. | ||
Scheeftrekken | Geen, u moet de eigenschappen b en c instellen. | Schuift de afbeelding progressief in een richting parallel aan de x- of y-as. De eigenschap b van het object Matrix vertegenwoordigt de tangent van de scheeftrekhoek langs de y-as en de eigenschap c van het object Matrix vertegenwoordigt de tangent van de scheeftrekhoek langs de x-as. |
Elke transformatiefunctie wijzigt de huidige eigenschappen van de matrix, zodat u meerdere transformaties kunt combineren. Wanneer u dit wilt doen, roept u meer dan één transformatiefunctie aan voordat u de matrix op het weergaveobjectdoel toepast (met behulp van de eigenschap transform
van dat weergaveobject).
U moet de constructor new Matrix()
gebruiken om een object Matrix te maken voordat u de methoden van het object Matrix kunt aanroepen.
Meer voorbeelden
Verwante API-elementen
flash.geom.Transform
flash.display.BitmapData.draw()
flash.display.Graphics.beginBitmapFill()
flash.display.Graphics.beginGradientFill()
flash.display.Graphics.lineGradientStyle()
Eigenschap | Gedefinieerd door | ||
---|---|---|---|
a : Number
De waarde die invloed heeft op de plaatsing van de pixels langs de x-as wanneer een afbeelding wordt geschaald of gedraaid. | Matrix | ||
b : Number
De waarde die invloed heeft op de plaatsing van de pixels langs de y-as wanneer een afbeelding wordt gedraaid of geschaald. | Matrix | ||
c : Number
De waarde die invloed heeft op de plaatsing van de pixels langs de x-as wanneer een afbeelding wordt gedraaid of geschaald. | Matrix | ||
constructor : Object
Verwijzing naar het klasseobject of de constructorfunctie van een bepaalde objectinstantie. | Object | ||
d : Number
De waarde die invloed heeft op de plaatsing van de pixels langs de y-as wanneer een afbeelding wordt geschaald of gedraaid. | Matrix | ||
tx : Number
De afstand waarmee elk punt langs de x-as wordt getransleerd. | Matrix | ||
ty : Number
De afstand waarmee elk punt langs de y-as wordt getransleerd. | Matrix |
Methode | Gedefinieerd door | ||
---|---|---|---|
Maakt een nieuw object Matrix met de opgegeven parameters. | Matrix | ||
Retourneert een nieuw object Matrix dat een kloon van deze matrix is, met een exacte kopie van het object dat de matrix bevat. | Matrix | ||
Hiermee wordt de matrix met de huidige matrix samengevoegd, zodat de geometrische effecten van de twee matrices worden gecombineerd. | Matrix | ||
Hiermee wordt een Vector3D-object naar een specifieke kolom van het aanroepende Matrix3D-object gekopieerd. | Matrix | ||
Hiermee wordt een specifieke kolom van het aanroepende Matrix-object naar het Vector3D-object gekopieerd. | Matrix | ||
Hiermee worden alle matrixgegevens van het Point-bronobject naar het aanroepende Matrix-object gekopieerd. | Matrix | ||
Hiermee wordt een Vector3D-object naar een specifieke rij van het aanroepende Matrix-object gekopieerd. | Matrix | ||
Hiermee wordt een specifieke rij van het aanroepende Matrix-object naar het Vector3D-object gekopieerd. | Matrix | ||
Omvat parameters voor schalen, roteren en transleren. | Matrix | ||
createGradientBox(width:Number, height:Number, rotation:Number = 0, tx:Number = 0, ty:Number = 0):void
Hiermee wordt de specifieke matrixstijl gemaakt die door de methoden beginGradientFill() en lineGradientStyle() van de klasse Graphics wordt verwacht. | Matrix | ||
Wanneer een punt is opgegeven in de coördinaatruimte voorafgaand aan transformatie, worden de coördinaten van dat punt geretourneerd nadat de transformatie is uitgevoerd. | Matrix | ||
Geeft aan of voor een object een opgegeven eigenschap is gedefinieerd. | Object | ||
Stelt elke matrixeigenschap in op een waarde die een nultransformatie tot gevolg heeft. | Matrix | ||
Voert de tegenovergestelde transformatie van de oorspronkelijke matrix uit. | Matrix | ||
Geeft aan of een instantie van de klasse Object zich in de prototypeketen van het object bevindt dat als parameter is opgegeven. | Object | ||
Geeft aan of de opgegeven eigenschap bestaat en kan worden opgesomd. | Object | ||
Past een rotatietransformatie op het object Matrix toe. | Matrix | ||
Past een schaaltransformatie op de matrix toe. | Matrix | ||
Stelt de beschikbaarheid van een dynamische eigenschap voor lusbewerkingen in. | Object | ||
Hiermee worden de leden van Matrix op de opgegeven waarden ingesteld.
| Matrix | ||
Geeft de tekenreeksweergave van dit object weer, geformatteerd volgens de locatiespecifieke conventies. | Object | ||
Retourneert een tekstwaarde die de eigenschappen van het object Matrix opsomt. | Matrix | ||
Hiermee wordt het resultaat geretourneerd van het toepassen van de geometrische transformatie die door het object Matrix wordt vertegenwoordigd, op het opgegeven punt. | Matrix | ||
Transleert de matrix langs de x- en y-as, zoals opgegeven door de parameters dx en dy. | Matrix | ||
Retourneert de primitieve waarde van het opgegeven object. | Object |
a | eigenschap |
public var a:Number
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
De waarde die invloed heeft op de plaatsing van de pixels langs de x-as wanneer een afbeelding wordt geschaald of gedraaid.
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
myMatrix
gemaakt en wordt de waarde a
ingesteld.
import flash.geom.Matrix; var myMatrix:Matrix = new Matrix(); trace(myMatrix.a); // 1 myMatrix.a = 2; trace(myMatrix.a); // 2
b | eigenschap |
public var b:Number
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
De waarde die invloed heeft op de plaatsing van de pixels langs de y-as wanneer een afbeelding wordt gedraaid of geschaald.
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
myMatrix
gemaakt en wordt de waarde b
ingesteld.
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 | eigenschap |
public var c:Number
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
De waarde die invloed heeft op de plaatsing van de pixels langs de x-as wanneer een afbeelding wordt gedraaid of geschaald.
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
myMatrix
gemaakt en wordt de waarde c
ingesteld.
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 | eigenschap |
public var d:Number
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
De waarde die invloed heeft op de plaatsing van de pixels langs de y-as wanneer een afbeelding wordt geschaald of gedraaid.
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
myMatrix
gemaakt en wordt de waarde d
ingesteld.
import flash.geom.Matrix; var myMatrix:Matrix = new Matrix(); trace(myMatrix.d); // 1 myMatrix.d = 2; trace(myMatrix.d); // 2
tx | eigenschap |
public var tx:Number
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
De afstand waarmee elk punt langs de x-as moet worden getransleerd.
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
myMatrix
gemaakt en wordt de waarde tx
ingesteld.
import flash.geom.Matrix; var myMatrix:Matrix = new Matrix(); trace(myMatrix.tx); // 0 myMatrix.tx = 50; // 50 trace(myMatrix.tx);
ty | eigenschap |
public var ty:Number
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
De afstand waarmee elk punt langs de y-as moet worden getransleerd.
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
myMatrix
gemaakt en wordt de waarde ty
ingesteld.
import flash.geom.Matrix; var myMatrix:Matrix = new Matrix(); trace(myMatrix.ty); // 0 myMatrix.ty = 50; trace(myMatrix.ty); // 50
Matrix | () | Constructor |
public function Matrix(a:Number = 1, b:Number = 0, c:Number = 0, d:Number = 1, tx:Number = 0, ty:Number = 0)
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Maakt een nieuw object Matrix met de opgegeven parameters. In matrixnotatie worden deze eigenschappen als volgt geordend:
Wanneer u geen parameter aan de nieuwe constructor new Matrix()
aanbiedt, maakt deze een identiteitsmatrix met de volgende waarden:
In matrixnotatie ziet de identiteitsmatrix er als volgt uit:
Parametersa:Number (default = 1 ) — De waarde die invloed heeft op de plaatsing van de pixels langs de x-as wanneer een afbeelding wordt geschaald of gedraaid.
| |
b:Number (default = 0 ) — De waarde die invloed heeft op de plaatsing van de pixels langs de y-as wanneer een afbeelding wordt gedraaid of geschaald.
| |
c:Number (default = 0 ) — De waarde die invloed heeft op de plaatsing van de pixels langs de x-as wanneer een afbeelding wordt gedraaid of geschaald.
| |
d:Number (default = 1 ) — De waarde die invloed heeft op de plaatsing van de pixels langs de y-as wanneer een afbeelding wordt geschaald of gedraaid.
| |
tx:Number (default = 0 ) — De afstand waarmee elk punt langs de x-as moet worden getransleerd.
| |
ty:Number (default = 0 ) — De afstand waarmee elk punt langs de y-as moet worden getransleerd.
|
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
matrix_1
gemaakt door geen parameters naar de constructor Matrix()
te verzenden en wordt matrix_2
gemaakt door wel parameters te verzenden. matrix_1
, die is gemaakt zonder parameters, resulteert in een identiteitsmatrix met de waarden 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 | () | methode |
concat | () | methode |
public function concat(m:Matrix):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Hiermee wordt de matrix met de huidige matrix samengevoegd, zodat de geometrische effecten van de twee matrices worden gecombineerd. In wiskundige termen is het samenvoegen van twee matrices hetzelfde als twee matrices via een matrixvermenigvuldiging combineren.
Wanneer de matrix m1
bijvoorbeeld een object met factor vier schaalt en matrix m2
een object met 1,5707963267949 radialen roteert (Math.PI/2
), transformeert m1.concat(m2)
m1
in een matrix die een object met factor vier schaalt en het object met Math.PI/2
radialen roteert.
Deze methode vervangt de bronmatrix met de samengevoegde matrix. Wanneer u twee matrices wilt samenvoegen zonder beide bronmatrices te wijzigen, kunt u eerst de bronmatrix kopiëren met de methode clone()
, zoals in de voorbeeldsectie voor de klassen wordt getoond.
Parameters
m:Matrix — De matrix die met de bronmatrix moet worden samengevoegd.
|
copyColumnFrom | () | methode |
public function copyColumnFrom(column:uint, vector3D:Vector3D):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 11, AIR 3.0, Flash Lite 4 |
Hiermee wordt een Vector3D-object naar een specifieke kolom van het aanroepende Matrix3D-object gekopieerd.
Parameters
column:uint — De kolom waaruit de gegevens moeten worden gekopieerd.
| |
vector3D:Vector3D — Het Vector3D-object waaruit de gegevens moeten worden gekopieerd.
|
copyColumnTo | () | methode |
public function copyColumnTo(column:uint, vector3D:Vector3D):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 11, AIR 3.0, Flash Lite 4 |
Hiermee wordt een specifieke kolom van het aanroepende Matrix-object naar het Vector3D-object gekopieerd. Het w-element van het Vector3D-object wordt niet gewijzigd.
Parameters
column:uint — De kolom waaruit de gegevens moeten worden gekopieerd.
| |
vector3D:Vector3D — Het Vector3D-object waaruit de gegevens moeten worden gekopieerd.
|
copyFrom | () | methode |
public function copyFrom(sourceMatrix:Matrix):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 11, AIR 3.0, Flash Lite 4 |
Hiermee worden alle matrixgegevens van het Point-bronobject naar het aanroepende Matrix-object gekopieerd.
Parameters
sourceMatrix:Matrix — Het Matrix-object waaruit de gegevens moeten worden gekopieerd.
|
copyRowFrom | () | methode |
public function copyRowFrom(row:uint, vector3D:Vector3D):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 11, AIR 3.0, Flash Lite 4 |
Hiermee wordt een Vector3D-object naar een specifieke rij van het aanroepende Matrix-object gekopieerd.
Parameters
row:uint — De rij waaruit de gegevens moeten worden gekopieerd.
| |
vector3D:Vector3D — Het Vector3D-object waaruit de gegevens moeten worden gekopieerd.
|
copyRowTo | () | methode |
public function copyRowTo(row:uint, vector3D:Vector3D):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 11, AIR 3.0, Flash Lite 4 |
Hiermee wordt een specifieke rij van het aanroepende Matrix-object naar het Vector3D-object gekopieerd. Het w-element van het Vector3D-object wordt niet gewijzigd.
Parameters
row:uint — De rij waaruit de gegevens moeten worden gekopieerd.
| |
vector3D:Vector3D — Het Vector3D-object waaruit de gegevens moeten worden gekopieerd.
|
createBox | () | methode |
public function createBox(scaleX:Number, scaleY:Number, rotation:Number = 0, tx:Number = 0, ty:Number = 0):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Omvat parameters voor schalen, roteren en transleren. Bij toepassing op een matrix worden de waarden van de matrix gebaseerd op die parameters.
Via de methode createBox()
kunt u dezelfde matrix verkrijgen als wanneer u achtereenvolgens de methoden identity()
, rotate()
, scale()
en translate()
zou toepassen. mat1.createBox(2,2, Math.PI/4, 100, 100)
heeft bijvoorbeeld hetzelfde effect als de volgende code:
import flash.geom.Matrix; var mat1:Matrix = new Matrix(); mat1.identity(); mat1.rotate(Math.PI/4); mat1.scale(2,2); mat1.translate(10,20);
Parameters
scaleX:Number — De factor waarmee horizontaal moet worden geschaald.
| |
scaleY:Number — De factor waarmee verticaal moet worden geschaald.
| |
rotation:Number (default = 0 ) — De grootte van de rotatie, in radialen.
| |
tx:Number (default = 0 ) — Het aantal pixels waarmee naar rechts moet worden getransleerd (verplaatst) langs de x-as.
| |
ty:Number (default = 0 ) — Het aantal pixels waarmee omlaag moet worden getransleerd (verplaatst) langs de y-as.
|
Verwante API-elementen
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
myMatrix
ingesteld door de methode createBox()
ervan aan te roepen.
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 | () | methode |
public function createGradientBox(width:Number, height:Number, rotation:Number = 0, tx:Number = 0, ty:Number = 0):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Maakt de specifieke matrixstijl gemaakt die door de methoden beginGradientFill()
en lineGradientStyle()
van de klasse Graphics wordt verwacht. Breedte en hoogte worden geschaald tot een scaleX
/ scaleY
-paar en de waarden tx
/ ty
worden met de helft van de breedte en hoogte verschoven.
Bekijk bijvoorbeeld een verloop met de volgende kenmerken:
GradientType.LINEAR
- Twee kleuren, groen en blauw, met de array ratios ingesteld op
[0, 255]
SpreadMethod.PAD
InterpolationMethod.LINEAR_RGB
De volgende afbeeldingen tonen verlopen waarin de matrix is gedefinieerd met de methode createGradientBox()
met verschillende parameterinstellingen:
createGradientBox() -instellingen | Resulterend verloop |
---|---|
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; |
Parameters
width:Number — De breedte van het verloopvak.
| |
height:Number — De hoogte van het verloopvak.
| |
rotation:Number (default = 0 ) — De grootte van de rotatie, in radialen.
| |
tx:Number (default = 0 ) — De afstand in pixels waarmee langs de x-as naar rechts wordt getransleerd. Deze waarde wordt met de helft van de parameter width verschoven.
| |
ty:Number (default = 0 ) — De afstand in pixels waarmee langs de y-as omlaag wordt getransleerd. Deze waarde wordt met de helft van de parameter height verschoven.
|
Verwante API-elementen
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
myMatrix
ingesteld door de methode createBox()
ervan aan te roepen.
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 | () | methode |
public function deltaTransformPoint(point:Point):Point
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Wanneer een punt is opgegeven in de coördinaatruimte voorafgaand aan transformatie, worden de coördinaten van dat punt geretourneerd nadat de transformatie is uitgevoerd. In tegenstelling tot de standaardtransformatie die met de methode transformPoint()
wordt toegepast, wordt bij de transformatie met de methode deltaTransformPoint()
geen rekening gehouden met de translatieparameters tx
en ty
.
Parameters
point:Point — Het punt waarvoor u het resultaat van de matrixtransformatie wilt krijgen.
|
Point — Het punt dat het resultaat is van het toepassen van de matrixtransformatie.
|
identity | () | methode |
public function identity():void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Stelt elke matrixeigenschap in op een waarde die een nultransformatie tot gevolg heeft. Een object dat is getransformeerd door een identiteitsmatrix is identiek aan het origineel.
Nadat de methode identity()
is aangeroepen, heeft de resulterende matrix de volgende eigenschappen: a
=1, b
=0, c
=0, d
=1, tx
=0 en ty
=0.
In matrixnotatie ziet de identiteitsmatrix er als volgt uit:
invert | () | methode |
public function invert():void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Voert de tegenovergestelde transformatie van de oorspronkelijke matrix uit. U kunt een omgekeerde matrix op een object toepassen om de uitgevoerde transformatie tijdens het toepassen van de oorspronkelijke matrix ongedaan te maken.
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
halfScaleMatrix
gemaakt door het aanroepen van de methode invert()
van doubleScaleMatrix
. Vervolgens wordt getoond dat de twee matrices tegenovergestelden zijn van elkaar, matrices die elke transformatie die door de ander wordt uitgevoerd ongedaan maken, door originalAndInverseMatrix
te maken, die gelijk is aan 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 | () | methode |
public function rotate(angle:Number):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Past een rotatietransformatie op het object Matrix toe.
De methode rotate()
wijzigt de eigenschappen a
, b
, c
en d
van het object Matrix. In matrixnotatie is dit hetzelfde als het samenvoegen van de huidige matrix met het volgende:
Parameters
angle:Number — De rotatiehoek in radialen.
|
scale | () | methode |
public function scale(sx:Number, sy:Number):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Past een schaaltransformatie op de matrix toe. De x-as wordt vermenigvuldigd door sx
en de y-as wordt vermenigvuldigd door sy
.
De methode scale()
wijzigt de eigenschappen a
en d
van het object Matrix. In matrixnotatie is dit hetzelfde als het samenvoegen van de huidige matrix met de volgende matrix:
Parameters
sx:Number — Een vermenigvuldiger die wordt gebruikt om het object langs de x-as te schalen.
| |
sy:Number — Een vermenigvuldiger die wordt gebruikt om het object langs de y-as te schalen.
|
setTo | () | methode |
public function setTo(aa:Number, ba:Number, ca:Number, da:Number, txa:Number, tya:Number):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | Flash Player 11, AIR 3.0, Flash Lite 4 |
Hiermee worden de leden van Matrix op de opgegeven waarden ingesteld.
Parameters
aa:Number — de waarden waarop de matrix moet worden ingesteld.
| |
ba:Number | |
ca:Number | |
da:Number | |
txa:Number | |
tya:Number |
toString | () | methode |
public function toString():String
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Retourneert een tekstwaarde die de eigenschappen van het object Matrix opsomt.
Geretourneerde waardeString — Een tekenreeks die de waarden bevat van de eigenschappen van het object Matrix: a , b , c , d , tx en ty .
|
transformPoint | () | methode |
public function transformPoint(point:Point):Point
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Hiermee wordt het resultaat geretourneerd van het toepassen van de geometrische transformatie die door het object Matrix wordt vertegenwoordigd, op het opgegeven punt.
Parameters
point:Point — Het punt waarvoor u het resultaat van de matrixtransformatie wilt krijgen.
|
Point — Het punt dat het resultaat is van het toepassen van de matrixtransformatie.
|
translate | () | methode |
public function translate(dx:Number, dy:Number):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Zet de matrix om langs de x- en y-as, zoals opgegeven door de parameters dx
en dy
.
Parameters
dx:Number — De mate van beweging langs de x-as naar rechts, in pixels.
| |
dy:Number — De mate van beweging langs de y-as, in pixels.
|
MatrixExample
gebruikt om te laten zien hoe een groot vierkant met verlopende vulling kan worden gemaakt. Dit wordt gedaan door de volgende stappen te volgen:
- De toepassing maakt een nieuw Matrix-object
myMatrix
en gebruikt de methodetrace()
om de standaardeigenschapwaarden voor het objectmyMatrix
als uitvoer te geven. - De toepassing roept
createGradientBox()
aan met de parameterswidth
enheight
ingesteld op 200 pixels, geen rotatie, en de afstand om te transleren langs de x- en y-as ingesteld op 50 pixels. - De toepassing drukt het object
myMatrix
opnieuw af om de wijziging te laten zien na de aanroep vancreateGradientBox()
. - De toepassing stelt drie variabelen in om het vullen van het verloopvak te besturen:
colors
: stelt de verloopkleuren in tussen effen rood en effen blauw.alphas
: stelt de dekking in op dekkend.ratios
: stelt de distributie van de kleuren gelijk voor zowel rood als blauw.
- De toepassing roept de grafische methode
beginGradientFill()
aan, die werkt op het objectmyMatrix
en het roept de methodelineTo()
aan, wat resulteert in een verlopend gevuld vak.
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); } } }
Wed Jun 13 2018, 11:42 AM Z