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

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

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

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

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

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

rotMatrix = newRotationZMatrix(45) * rotMatrix;

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

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

1 ответ

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

2
ответ дан 2 September 2019 в 21:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: