¿cómo puedo extraer los valores de rotación, escala y traslación de la matriz de transformación 2d? Me refiero a una tienen una transformación 2dextracto de rotación, valores de escala de la matriz de transformación 2d
matrix = [1, 0, 0, 1, 0, 0]
matrix.rotate(45/180 * PI)
matrix.scale(3, 4)
matrix.translate(50, 100)
matrix.rotate(30/180 * PI)
matrix.scale(-2, 4)
ahora mi matriz tienen valores [a, b, c, d, tx, ty]
olvidemos sobre los procesos anteriores y imaginar que tenemos sólo los valores a, b, c, d, tx, ty
Cómo puedo encontrar los valores totales de rotación y escala a través de a, b, c, d, tx, ty
lo siento por mi inglés
Gracias a su avance
EDITAR
creo que debe haber una respuesta en alguna parte ...
he intentado en Flash Builder (AS3) como esto
var m:Matrix = new Matrix;
m.rotate(.25 * Math.PI);
m.scale(4, 5);
m.translate(100, 50);
m.rotate(.33 * Math.PI);
m.scale(-3, 2.5);
var shape:Shape = new Shape;
shape.transform.matrix = m;
trace(shape.x, shape.y, shape.scaleX, shape.scaleY, shape.rotation);
y la salida es:
x = -23.6
y = 278.8
scaleX = 11.627334873920528
scaleY = -13.54222263865791
rotation = 65.56274134518259 (in degrees)
Esta pregunta sería la más adecuada para http://math.stackexchange.com/ - obtendrá una respuesta más rápida :-) – Bojangles
acabo de hacer aquí: http://math.stackexchange.com/questions/13150/ extracting-rotation-scale-values-from-2d-transformation-matrix gracias –
Danos un ejemplo de valores a, b, c, d, tx, ty veamos si alguna respuesta coincide con lo que esperas. – ja72