Loading:

Książka Zend Framework 3. Poradnik Programisty.

Matrix concat [AS 2]

Klasa: Matrix

Kompatybilność: ActionScript 1.0, Flash 8+

 

Łączy matrix z aktualnym matrix'em, automatycznie nadając geometryczny efekt obydwu z nich.

 

Z terminologi matematycznej, łączenie dwóch matrix'ów to tak samo jak kombinowaniem ich przy użyciu mnożenia matrix.



Napisz Artykuł

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;
}
 


Ten wpis posiada swój wątek na forum

Wszystkie pytania prosimy kierować właśnie tam ponieważ komentarze to miejsce na poprawki do kodu lub alternatywne rozwiązania i pytania nie będą publikowane

http://forum.funkcje.net/forum/viewtopic.php?f=12&t=3450

Dane do logowania na forum są takie same jak na funkcje.net



Dodano przez: divix
Ranga: Administrator serwisu Punktów: 37169
Komentarze użytkowników
    • Treść komentarza
      Kod do komentarza (opcjonalnie)
      PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
      Autor
      Token
      token

       

       








funkcje.net
Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-17 v.1.5 | design: diviXdesign & rainbowcolors