Рассчитать кватернионы относительно - PullRequest
0 голосов
/ 23 февраля 2019

Вопрос объясняется на следующем рисунке.Теперь У меня есть данные Quaternions Q1, Q2 и Q3.Как я могу рассчитать Q4? Заранее спасибо за помощь.

введите описание изображения здесь

Чтобы сделать его более понятным:

Iхотите разработать приложение для 3D-навигации в помещении, которое позволяет пользователю загружать маршрут и воспроизводить маршрут в том же месте.

При создании пути и загрузке: сначала пользователь открывает камеру и получает инициатlocation это O, тогда он будет хранить данные о перемещении и повороте X, который является предопределенным местоположением.Наконец, создавая их путь, запишите другую точку, например Y, относительно O.

При воспроизведении пути, созданного ранее, они снова открывают камеру и получают другое начальное местоположение O '.Он может снова перейти в заранее определенное место и снова получить перевод и вращение X.Тогда я мог бы вычислить Y относительно O 'и воспроизвести точку.

С моей точки зрения, я мог бы рассчитать перевод с помощью векторного вычисления: O'X - OX + OY = O'Y

Но я не знаком с кватернионами и вращательной частью.Я попробовал тот же метод, но получается не правильно.Поэтому я упрощаю вопрос, как модель, описанную на графике, и прошу помощи.

1 Ответ

0 голосов
/ 24 февраля 2019

Я думаю, Quaternion.SetLookRotation подходит для вашей проблемы, он преобразует вектор вперед (и вектор вверх) в кватернион, а вектор вверх для людей обычно равен Vector3.up, поэтому:

var Q4 = Quaternion.SetLookRotation(/* vector Y-O' here */);
...