Правильно ли я понял суть кватернионов?

на примере Unity в данном контексте. Кватернион описывается через четыре аргумента - x, y, z, и w. Соответственно первые три - это координаты вектора относительно абсолютного нуля в глобальной системе координат сцены, а w - угол поворота вокруг оси которая как раз этим вектором и задается? Правильно я думаю?))
P.S: математику в школе учил плохо(( не судите строго и не спрашивайте как меня в программирование занесло)))
  • Вопрос задан
  • 5254 просмотра
Решения вопроса 1
Mrrl
@Mrrl
Заводчик кардиганов
Обычно берут кватернионы длины 1, т.е. x^2+y^2+z^2+w^2=1.
Поворот на нулевой угол задаётся кватернионом (0,0,0,1) - направление оси (x,y,z) для него не определено, да и не нужно.
В остальных случаях угол поворота определяется значением w по формуле
w=cos(phi/2), где 0 <= phi <= 2*pi. То есть, чем больше угол поворота, тем меньше w. Для поворотов на 180 градусов w=0.
Если w<0, то поворот получается на угол, больший 180 гр. Угол поворота отсчитывается против часовой стрелки, если смотреть в сторону (x,y,z). Получается, что кватернионы (x,y,z,w) и (-x,-y,-z,-w) задают один и тот же угол поворота.
Почему так сделано - не очень важно. Главное, что суперпозиция двух последовательных поворотов описывается кватернионом, равным произведению кватернионов самих этих поворотов (в каком-то определённом порядке).
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы