Матрица Android OpenGL 3x3 в кватернион

Я хочу повернуть 3D-куб, используя матрицу 3x3. Мне удается получить матрицу, но OpenGL нуждается в кватернионе, чтобы повернуть куб, используя

glRotatef (плавающий угол, плавающая x, плавающая y, плавающая z);

Как я могу перейти от матрицы 3x3 к кватерниону, чтобы правильно использовать этот метод?

Спасибо!


person Community    schedule 18.06.2013    source источник
comment
glRotatef не принимает кватернион. Кроме того, вам не нужно использовать glRotatef, если у вас есть матрица; glMultMatrix будет работать, если у вас уже есть матрица (хотя вам нужно будет сделать ее 4x4).   -  person Nicol Bolas    schedule 18.06.2013


Ответы (2)


glRotatef ожидает не кватернион, а ось и угол (в градусах). Посмотри на:

http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToAngle/index.htm

person GuyRT    schedule 18.06.2013

см. здесь, чтобы узнать, как это делается в javascript. Метод тот же, он преобразует матрицу 3x3 в кватернион, просто преобразуйте код в java и вперед.

person gavlaaaaaaaa    schedule 18.06.2013
comment
Я еще не заставил его работать, но это мне очень помогло !! Спасибо - person ; 18.06.2013