Инвертировать матрицу преобразования CSS3 - PullRequest
1 голос
/ 20 марта 2012

Как, если у меня есть матрица преобразования CSS3, можно ли инвертировать эту матрицу?

Например, если бы у меня была эта матрица для поворота на 45 градусов и перевода матрицы 10px, 10px

(0.7071067811865475,+0,7071067811865476, -0,7071067811865476, +0,7071067811865475, -0,0000000000000008881784197001252, 14,142135623730951)

как я могу вычислить обратное

1008 * матрица (0,7071067811865475, -0,7071067811865476, +0,7071067811865476, +0,7071067811865475, -14,142135623730951, 0.0000000000000008881784197001252) 1010 * для поворота на -45 градусов и перевода -10px, -10px?Всегда ли это просто замена второго и третьего аргумента и замена пятого и шестого элемента (при выполнении * -1)?

1 Ответ

1 голос
/ 20 марта 2012

Нет, это не так.В обоих случаях (прямой и обратный) dx & dy применяются после (или до ... но всегда в том же порядке) вращения / масштаба.Нужно найти обратную матрицу для следующей:

| a11 a12 dx |
| a21 a22 dy |
|  0   0  1  |

И отбросить третью строку результата.

В случае, если у вас есть только вращение и нет масштабирования, обратная матрицабудет что-то вроде

| a11 a21 a11*x+a21*y |
| a12 a22 a12*x+a22*y |
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...