Матрица Android использует skia, и ее основной ряд означает, что индексы следующие:
0 1 2
3 4 5
6 7 8
Я, напротив, OpenGL использует такие индексы, как такОтносительно положения матрицы.
a b tx
c d ty
0 0 1
a, b, c, d одновременно кодируют масштаб и вращение.TX / TY закодировать перевод.Если вы делаете m.getValues (vals);тогда vals [2] == tx, vals [5] == ty, а все остальное прямо.Лучший способ извлечь перевод - создать вектор
float[] point = {0, 0};
Затем отобразить его и посмотреть, чем он заканчивается, и это ваш перевод (который точно (tx, ty). В редких случаях это не
чтобы получить масштабную карту для второй точки
float[] point2 = {1, 0};
Теперь возьмите разницу rel = (точка - точка2) и получите длину этого вектора, и это ваша шкала.получить стандартный угол просто.