@YURITIGER

Как преобразовать кватернион в сферические углы вращения?

Добрый день!
Подскажите пожалуйста где можно найти математически расписанное преобразование кватернионов в сферические углы вращения и наоборот. Я нашел такую программу преобразования:
9fcd5c5187714513869ab9f164eead19.jpg, но не смог с ней разобраться
  • Вопрос задан
  • 501 просмотр
Решения вопроса 1
@syrov
пишу программы до 99 строк
В любой книге по 3d графике, например для разработчиков игр. В данном примере происходит следующее. Кватернион это поворот вокруг вектора, он нормализованный, т.е. его длина равна 1, и еще в нем, в отличии от 3d вектора есть четвертая координата, таким образом это 4d вектор. Если скажем, что вектор вокруг которого происходит поворот V и угол alpha, то q == { sin(alpha / 2) * V.x, sin(alpha / 2) * V.y, sin(alpha / 2) * V.z), cos(alpha / 2) }. Первая строчка, собственно выделяет четвертый компонент, хотя вернее будет:
half_cos_alpha = q->w;
Вторая строчка получает синус полуугла, по теореме Пифагора, и с учетом, что V является единичным вектором, т.о:
half_sin_alpha = sqrt(1.0 - half_cos_alpha * half_cos_alpha)
И так далее :) (учитывая, что текст явно не полный и sa вообще не инициализирована). Идея, наверное, повернуть точку (единичный вектор) {0, 0, 1} с помощью этого кватерниона, а потом определить широту и долготу этой точки (как единичного вектора).
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы