Хорошо, вот что я have:
абстрактный класс «Object», который я создал в рамках, чтобы использовать его в качестве базового класса для всех 3D-объектов.
член Matrix4 этого класса, единственная цель которого - хранить информацию о вращении объекта.
некоторые функции, которые умножают матрицу: для каждого поворота по рысканью, тангажу и крену (как глобальному, так и локальному) я создал метод, который умножает указанную выше матрицу вращения на новую матрицу.
например: если вы локально поворачиваете объект на 45 градусов в направлении CCW, то
rotMatrix = newRotationZMatrix(45) * rotMatrix;
Я хотел бы знать, как лучше всего получить глобальное вращение объекта как вектора - вообще говоря, как вы получаете углы поворота вокруг X, Y и Z из матрицы преобразования, которая содержит ТОЛЬКО вращения.
Существуют методы, позволяющие получить это, достаточно просто получить углы Эйлера из матрицы вращения, это включает немного математики. Здесь вы можете прочитать об этом.