2. 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. Matriz tradicional Matriz AS3 (u=0,v=0, w=1) Ing. Andrés M García O
3. Clase Matrix y trasnformaciones espaciales Ing. Andrés M García O
4. 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(). varmatrix:Matrix = new Matrix(); varscaleX:Number = 2.0; varscaleY:Number = 3.0; varrotation:Number = 2 * Math.PI * (45 / 360); vartx:Number = 10; varty:Number = 20; matrix.createBox(scaleX, scaleY, rotation, tx, ty); Ing. Andrés M García O
5. 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(). varmatrix:Matrix = new Matrix(); varrotation:Number = 2 * Math.PI * (30 / 360); // 30° varscaleFactor:Number = 2; matrix.scale(scaleFactor, scaleFactor); matrix.rotate(rotation); myDisplayObject.transform.matrix = matrix; Ing. Andrés M García O
6. 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. varskewMatrix: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. varmatrix:Matrix = myDisplayObject.transform.matrix; varscaleFactor:Number = 2; varrotation: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