Как я могу инвертировать?координатное пространство? - PullRequest
0 голосов
/ 24 ноября 2018

Вот проблема, которая какое-то время ломала мой мозг.

Учитывая: у меня есть два координатных пространства: глобальное пространство G и локальное пространство A, и я знаю положение и поворот относительно Aв G.

Вопрос: Как программно рассчитать положение и вращение G относительно A?

На графике я могу вычислить это вручную:

  • если A относительно G равен (4,1) 90 градусов, то G относительно A равен (-1, -4) -90 градусов
  • , если A относительно G равен (5, 0) 0 градусов, тоG относительно A составляет (-5, 0) 0deg

... но у меня возникают проблемы при переносе этого вычисления в программное обеспечение.

1 Ответ

0 голосов
/ 24 ноября 2018

В матричной форме:

y = R x + t

, где R - матрица вращения, а t - перевод начала координат.

Обратный путь,

x = R' (y - t) = R' y + (- R' t)

, где R' - обратное R, а также его транспонирование.

...