как я могу извлечь значения поворота, масштабирования и сдвига из матрицы преобразования 2d? я имею в виду, что a имеет 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)
теперь моя матрица имеет значения [a, b, c, d, tx, ty]
позволяет забыть о описанных выше процессах и представить, что мы имеем только значения a, b, c, d, tx, ty
как я могу найти общие значения вращения и масштабирования через a, b, c, d, tx, ty
извините за мой английский
Спасибо за ваш прогресс
ИЗМЕНИТЬ
Я думаю, что это должен быть ответ где-то...
Я просто попытался в Flash Builder (AS3), как этот
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);
а выход:
x = -23.6
y = 278.8
scaleX = 11.627334873920528
scaleY = -13.54222263865791
rotation = 65.56274134518259 (in degrees)