Matrix invert [AS 2]
Klasa: Matrix
Kompatybilność: ActionScript 1.0, Flash 8+
Wykonuje odwrotną transformację do oryginalnego matrix'u.
Listing
import flash.geom.Matrix;
import flash.geom.Transform;
var prostokatMc_0:MovieClip = stworzProstokat(20, 80, 0x000000);
var prostokatMc_1:MovieClip = stworzProstokat(20, 80, 0xFF0000);
var prostokatMc_2:MovieClip = stworzProstokat(20, 80, 0x00FF00);
var prostokatMc_3:MovieClip = stworzProstokat(20, 80, 0x0000FF);
var prostokatTrans_1:Transform = new Transform(prostokatMc_1);
var prostokatTrans_2:Transform = new Transform(prostokatMc_2);
var prostokatTrans_3:Transform = new Transform(prostokatMc_3);
var rotacja45Matrix:Matrix = new Matrix();
rotacja45Matrix.rotacja(Math.PI/4);
prostokatTrans_1.matrix = rotacja45Matrix;
prostokatMc_1._x = 100;
trace(rotacja45Matrix.toString()); // (a=0.707106781186548, b=0.707106781186547, c=-0.707106781186547, d=0.707106781186548, tx=0, ty=0)
var podwojnieSkalowanyMatrix:Matrix = new Matrix();
podwojnieSkalowanyMatrix.scale(2, 2);
prostokatTrans_2.matrix = podwojnieSkalowanyMatrix;
prostokatMc_2._x = 200;
trace(podwojnieSkalowanyMatrix.toString()); // (a=2, b=0, c=0, d=2, tx=0, ty=0)
var skalowanyOrazObracanyMatrix:Matrix = podwojnieSkalowanyMatrix.clone();
skalowanyOrazObracanyMatrix.concat(rotacja45Matrix);
prostokatTrans_3.matrix = skalowanyOrazObracanyMatrix;
prostokatMc_3._x = 300;
trace(skalowanyOrazObracanyMatrix.toString()); // (a=1.4142135623731, b=1.41421356237309, c=-1.41421356237309, d=1.4142135623731, tx=0, ty=0)
function stworzProstokat(szerokosc:Number, wysokosc:Number, kolor:Number):MovieClip {
var depth:Number = this.getNextHighestDepth();
var mc:MovieClip = this.createEmptyMovieClip("mc_" + depth, depth);
mc.beginFill(kolor);
mc.lineTo(0, wysokosc);
mc.lineTo(szerokosc, wysokosc);
mc.lineTo(szerokosc, 0);
mc.lineTo(0, 0);
return mc;
}
import flash.geom.Transform;
var prostokatMc_0:MovieClip = stworzProstokat(20, 80, 0x000000);
var prostokatMc_1:MovieClip = stworzProstokat(20, 80, 0xFF0000);
var prostokatMc_2:MovieClip = stworzProstokat(20, 80, 0x00FF00);
var prostokatMc_3:MovieClip = stworzProstokat(20, 80, 0x0000FF);
var prostokatTrans_1:Transform = new Transform(prostokatMc_1);
var prostokatTrans_2:Transform = new Transform(prostokatMc_2);
var prostokatTrans_3:Transform = new Transform(prostokatMc_3);
var rotacja45Matrix:Matrix = new Matrix();
rotacja45Matrix.rotacja(Math.PI/4);
prostokatTrans_1.matrix = rotacja45Matrix;
prostokatMc_1._x = 100;
trace(rotacja45Matrix.toString()); // (a=0.707106781186548, b=0.707106781186547, c=-0.707106781186547, d=0.707106781186548, tx=0, ty=0)
var podwojnieSkalowanyMatrix:Matrix = new Matrix();
podwojnieSkalowanyMatrix.scale(2, 2);
prostokatTrans_2.matrix = podwojnieSkalowanyMatrix;
prostokatMc_2._x = 200;
trace(podwojnieSkalowanyMatrix.toString()); // (a=2, b=0, c=0, d=2, tx=0, ty=0)
var skalowanyOrazObracanyMatrix:Matrix = podwojnieSkalowanyMatrix.clone();
skalowanyOrazObracanyMatrix.concat(rotacja45Matrix);
prostokatTrans_3.matrix = skalowanyOrazObracanyMatrix;
prostokatMc_3._x = 300;
trace(skalowanyOrazObracanyMatrix.toString()); // (a=1.4142135623731, b=1.41421356237309, c=-1.41421356237309, d=1.4142135623731, tx=0, ty=0)
function stworzProstokat(szerokosc:Number, wysokosc:Number, kolor:Number):MovieClip {
var depth:Number = this.getNextHighestDepth();
var mc:MovieClip = this.createEmptyMovieClip("mc_" + depth, depth);
mc.beginFill(kolor);
mc.lineTo(0, wysokosc);
mc.lineTo(szerokosc, wysokosc);
mc.lineTo(szerokosc, 0);
mc.lineTo(0, 0);
return mc;
}
Dodano przez: divix
Ranga: Administrator serwisu Punktów: 0
Ranga: Administrator serwisu Punktów: 0
Komentarze użytkowników
:: Losowe artykuły
:: Wymiana linków
Modowe inspiracje |
Android Gry i Aplikacje |
ZaplanujTransport.pl: Przeprowadzki, transport, aukcje |
Logo dla firmy |
Change Tires - Car Weather Forecast Reminder |
Laminas: MVC Framework for PHP |
IT Books Reviews and Programming: JS, JAVA, PHP, ANDROID, CSS |
Katalog roślin |
Programming articles: JAVA, PHP, C++, Python, JavaScript |
Kancelaria Adwokacka Łukasz Huszno