У меня есть 2 Pose
, представляющие 2 положения камеры, и я хочу получить разницу между их азимутальными углами.
Старшая поза извлекается из набора привязок с более старой позой камеры., так что я не должен получать ошибки от обновлений понимания мира ARCore.
Более новая поза извлечена из текущего кадра.
Я пытался использовать эту формулу из wikipedia :
psi = atan2(
2*(qw*qz + qx*qy),
1-2*(qy*qy + qz*qz)
)
Затем я вывожу старый угол из более нового, но безуспешно: когда я перемещаю телефон, чтобы изменить только угол наклона, результат, который я получаю, также меняется.
Я думаю,это не сработало, потому что предполагается, что + Z - вертикальная ось, тогда как + Y - вертикальная ось в ARCore.Поэтому я повернул оси в формуле так, чтобы вертикальная ось была Y:
psi = atan2(
2*(qw*qy + qz*qx),
1-2*(qx*qx + qy*qy)
)
Это все еще не работает, результат все еще меняется, когда я изменяю только высоту тона.По-видимому, это неправильное преобразование.
Как вычислить разницу в азимутальном угле между двумя позами камеры?
Это может быть действительно вопрос для Математического обмена стека,но я не уверен, неправильно ли я понимаю ARCore или математику, так что вот оно.