Android Matrix, что возвращает getValues ​​()? - PullRequest
6 голосов
/ 08 июля 2010

У меня проблемы с обработкой возвращаемых значений приведенного ниже кода. PMeasure = PathMeasure, m = Matrix, distCount - это расстояние вдоль пути

pMeasure.getMatrix(distCount, m, 0x01 | 0x02); 
m.getValues(float[] values)

float [2] & float [5]Положение x и y соответственно, но я не могу понять, остальные

любая помощь еще раз оценили.

Ответы [ 2 ]

12 голосов
/ 14 июля 2010

Взято из документации Matrix class :

public static final int MPERSP_0
Константа Значение: 6 (0x00000006)

public static final intMPERSP_1
Значение константы: 7 (0x00000007)

публичное статическое окончание int MPERSP_2
Значение константы: 8 (0x00000008)

публичное статическое окончание int MSCALE_X
Значение константы: 0(0x00000000)

public static final int MSCALE_Y
Значение константы: 4 (0x00000004)

public static final int MSKEW_X
Значение константы: 1 (0x00000001)

public static final int MSKEW_Y
Значение константы: 3 (0x00000003)

public static final int MTRANS_X
Значение константы: 2 (0x00000002)

public static final int MTRANS_Y
Постоянное значение: 5 (0x00000005)

7 голосов
/ 22 марта 2013

Матрица 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) и получите длину этого вектора, и это ваша шкала.получить стандартный угол просто.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...