В моем приложении OpenGL мне нужно использовать вращение ArcBall для поворота объектов с помощью мыши.
Я понял, что я должен идти с кватернионами после прочтения этой статьи - http://www.gamedev.net/page/resources/_/technical/math-and-physics/quaternion-powers-r1095
И янашел простую в использовании реализацию здесь - http://www.codeproject.com/KB/openGL/virtualtrackball.aspx
Но моя проблема в том, что мне также нужно анимировать мой объект между сохраненными двумя состояниями.То есть -
Состояние (1) = (Позиция X1, Позиция Y1, Позиция Z1, Вращение 1);
Состояние (2) = (Позиция Х2, Позиция Y2, Позиция Z2, Вращение2);
* Эти «вращения» являются матрицами вращения
И анимация выполняется за n шагов.
Примерно так, как показано в этом видео - http://www.youtube.com/watch?v=rrUCBOlJdt4
Если бы я использовал 3 отдельных угла для трех осей (крен, наклон, рыскание), я мог бы легко интерполировать углы.Но, поскольку ArcBall использует матрицу вращения, как я могу интерполировать вращения между State 1 и State2?
Есть предложения?