При поставке оси и кватерниона, как я могу получить угол с помощью GLM?

Я использую кватернион GLM для представления ориентации объекта.

По сути, я хотел бы добавить возможность извлекать угол оси из четвертичного. Я не знаю, что мне нужно делать; но использование для этого было бы попыткой вращать куб по оси y, чтобы увеличить угол, который мне нужен, чтобы сначала получить старый угол, верно? Так

cube.setOrientation(cube.getAngleOnAxis(0, 1, 0) + 5);

И это должно повернуть куб на пять градусов, верно?

У меня проблема с реализацией функции getAngleOnAxis. Есть ли функция GLM, которая может извлекать угол?

Я не уверен, что я действительно придумал правильное решение, поэтому было бы здорово, если бы кто-нибудь с опытом мог объяснить это проще. Спасибо!


person toficofi    schedule 14.01.2013    source источник
comment
Эта строка текста была важна, потому что мне нужны разъяснения и пояснения к ответу, @genpfault. Откат.   -  person toficofi    schedule 14.01.2013


Ответы (1)


чтобы увеличить угол, мне нужно сначала получить старый угол, верно?

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

person Nicol Bolas    schedule 14.01.2013
comment
Спасибо за Ваш ответ. Я не понимал. - person toficofi; 15.01.2013