Вектор вращения OpenGL из матрицы

Хорошо, вот что я have:

  • абстрактный класс «Object», который я создал в рамках, чтобы использовать его в качестве базового класса для всех 3D-объектов.

  • член Matrix4 этого класса, единственная цель которого - хранить информацию о вращении объекта.

  • некоторые функции, которые умножают матрицу: для каждого поворота по рысканью, тангажу и крену (как глобальному, так и локальному) я создал метод, который умножает указанную выше матрицу вращения на новую матрицу.

например: если вы локально поворачиваете объект на 45 градусов в направлении CCW, то

rotMatrix = newRotationZMatrix(45) * rotMatrix;

Я хотел бы знать, как лучше всего получить глобальное вращение объекта как вектора - вообще говоря, как вы получаете углы поворота вокруг X, Y и Z из матрицы преобразования, которая содержит ТОЛЬКО вращения.

1
задан dbr 15 August 2012 в 22:07
поделиться