Post on 13-Jun-2015
Action Script 3 MATRIX Class
Ing. Andrés M García O
Clase Matrix y trasnformaciones espaciales La clase Matrix representa una matriz de transformación que determina
cómo asignar puntos de un espacio de coordenadas a otro. Es posible realizar varias transformaciones gráficas en un objeto de
visualización mediante la configuración de las propiedades de un objeto Matrix
Se puede aplicar un objeto matrix a la propiedad matrix de un objeto Transform.
funciones de transformación espaciales son la Traslación (cambio de posición de x e y), Rotación, Escala y sesgo.
Ing. Andrés M García O
Matriz tradicional Matriz AS3 (u=0,v=0, w=1)
Clase Matrix y trasnformaciones espaciales
Ing. Andrés M García O
Definición de objetos Matrix Aunque se puede definir una matriz ajustando directamente las
propiedades (a, b, c, d, tx, ty) de un objeto Matrix, resulta más fácil utilizar el método createBox().
var matrix:Matrix = new Matrix();var scaleX:Number = 2.0;var scaleY:Number = 3.0;var rotation:Number = 2 * Math.PI * (45 / 360);var tx:Number = 10;var ty:Number = 20;matrix.createBox(scaleX, scaleY, rotation, tx, ty);
Ing. Andrés M García O
Definición de objetos Matrix También se pueden ajustar los efectos de escala, rotación y traslación de
un objeto Matrix con los métodos scale(), rotate() y translate().
var matrix:Matrix = new Matrix();var rotation:Number = 2 * Math.PI * (30 / 360); // 30°var scaleFactor:Number = 2;matrix.scale(scaleFactor, scaleFactor);matrix.rotate(rotation);myDisplayObject.transform.matrix = matrix;
Ing. Andrés M García O
Definición de objetos Matrix Para aplicar una transformación de sesgo a un objeto Matrix, debe
ajustarse su propiedad b o c. Al ajustar la propiedad b, se sesga la matriz verticalmente y al ajustar la propiedad c, se sesga la matriz horizontalmente.
var skewMatrix:Matrix = new Matrix();skewMatrix.b = Math.tan(2);myMatrix.concat(skewMatrix);
Se puede aplicar una transformación de objeto Matrix a la propiedad transform de un objeto de visualización.
var matrix:Matrix = myDisplayObject.transform.matrix;var scaleFactor:Number = 2;var rotation:Number = 2 * Math.PI * (60 / 360); // 60°matrix.scale(scaleFactor, scaleFactor);matrix.rotate(rotation);myDisplayObject.transform.matrix = matrix;
Ing. Andrés M García O