Как разобрать матрицу трансформации на состовляющие?
Как я понял, твоя матрица 3×3 — это однородные координаты в 2D? Я бы поступил так.
1. Убедиться, что элементы 3-1 и 3-2 нули (иначе — это не аффинное преобразование).
2. Элемент 3-3 превратить в единицу, соответственно увеличив остальные (на что — читай, что такое однородные координаты).
3. Элементы 1-3 и 2-3 — перенос. Отрежем их, получается матрица 2×2.
4. То, что осталось, должно быть вида (c, s), (-s, c). Если с какой-то погрешностью это не так и 2-норма строк не единица (тоже с какой-то погрешностью) — это не поворот (т.е. может быть масштабирование или наклон). Остаётся взять atan2(c, s) — получается угол.
0_o
Я конечно о 3D графике имею слабое представление, но в афинных преобразованиях матрицы вроде бы 4х4/ (хотя, поидее, для 2D можно из матрицы выкинуть третью строку и третий столбец)
Вот хорошая статья, все разжевано:
compgraph.tpu.ru/3d.htm