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