Transformation Matrix

Flash takoder daje i kontrolu nad manipluacijom transformacije objekata pomocu ActionScripta. Transformaciju je moguce postici sa transformacijskom matricom (Matrix) dimenzija 3×3. Pogledajte na primjeru:



Download Ovdje mozete skinuti source



Matrica transformacije izgleda ovako:
Transformation Matrix

  • a - x scale
  • b - y skew
  • c - x skew
  • d - y scale
  • tx - x position
  • ty - y position
  • u, v, w - su vrijednosti koje se ne mijenjaju i imaju vrijednosti 0, 0, 1

Defaultna matrica koja ne tranformira objekt izgleda ovako:

Transformation Matrix

Da biste transformirali objekt treba promijeniti vrijednosti matrice i primjeniti matricu na objekt. Slijedi jednostavan primjer za pocetnu matricu (identity):

  • import flash.geom.Matrix;
  • var my_matrix = new Matrix();
  • my_matrix.a=1;
    my_matrix.b=0;
    my_matrix.c=0;
    my_matrix.d=1;
    my_matrix.tx=0;
    my_matrix.ty=0;
  • slika.transform.matrix = my_matrix;

Osim ovakvog nacina dodijeljivanja vrijednosti matrici moze se napraviti i ovako (a=1, b=2, c=3, d=4, tx=5, ty=6):

  • var matrix_2:Matrix = new Matrix(1, 2, 3, 4, 5, 6);

Objasnjenje: Importiramo klasu koja nam je potrebna za transformacijsku matricu. Zatim kreiramo novu matricu. Toj novoj matrici postavljamo vrijednost a, b, c, d, tx, ty. Na kraju slijedi primjena matrice na sliku odnosno transformacija iste.

Defaultna matrica se jos zove i Identity. Kada zelite resetirati transformaciju dovoljno je upisati naredbu

  • my_matrix.identity();

Da bi pojednostavio trensformacije Flash ima i predefinirane matrice za pojedine radnje kao sto su translate (pomicanje objekta po x,y osi), scale (skaliranje), rotate (rotacija). Slijede primjeri za ove naredbe:

- pomicanje objekta na kojeg se primjenjuje matrica po x osi za 20px i y osi za 50px

  • my_matrix.translate(20,50);

- skaliranje objekta na kojeg se primjenjuje matrica za 2 puta po x osi i 3 puta po y osi

  • my_matrix.scale(2,3);

- rotacija objekta na kojeg se primjenjuje matrica za 30 stupnjeva. Primjetite da je kut definiran u radijanima.

  • my_matrix.rotate(Math.PI/6);

Transformation matrix je zaista mocna matrica, posebno kada se kombinira sa trigonometrijskim funkcijama (sin, cos, tan). Na vama je da dalje testirate i istrazujete mogucnosti ove matrice.

U ovom tutorijalu sam objasnio osnove transformacijske matrice. Nisam se upustao u objasnjenje kako napraviti primjer koji je prikazan. Ako zelite detaljan opis izrade ovog primjera oglasite se preko komentara…



1 Star2 Stars3 Stars4 Stars5 Stars (3 votes, average: 4.67 out of 5)
Loading ... Loading …

2 Responses to “Transformation Matrix”

  1. Svaka cast na odlicnim tutorijalima, istina je da ih ima more na netu ali mi je uvijek drago vidit nesto domace :) Samo tako nastavi

    p.s. Bilo bi lijepo ako bi napravio seriju ActionScript 3.0 tutorijala onako za pocetnike kako bi se sto lakse prebacili na novi OOP jezik koji je ipak dosta razlicit.

    pozdrav

  2. Hvala, hvala

    Planiram napraviti par tutorijala sa AS3.0, ali nikako da uhvatim vremena za takvo nesto.

Komentari

Verification Image

Unesite slova sa slike.