Это не дубликат. Я просмотрел все остальные ответы.
У меня есть матрица преобразования [a, b, c, d, e, f] svg. Я хочу разложить его на любую серию операций перевода / масштабирования / вращения (с необязательным центром). Наклон НЕ вариант. Я пытаюсь вписаться в 7 атрибутов, предоставляемых Android Vector Drawable Group (например, вращение, pivotX, pivotY, scaleX, scaleY, translateX, translateY).
Мой первый вопрос заключается в том, что возможно ли для всех таких матриц? Если матрица имеет перекос вдоль любой оси, можно ли вместо этого визуализировать ее с помощью серии операций rotate | scale? Если не все матрицы возможны, можно ли определить, когда их нет?
Второй вопрос - это некоторая помощь по основам математики. Я добираюсь до translateX = e
и translateY = f
. scaleX = a
и scaleY = d
IF b и c равны нулю. Но когда b и c не равны нулю, вращение и масштаб запутываются. Как я могу распутать их?