Так как в рядах программистов нередко попадаются люди, хорошо знающие математику, рискну спросить на Хабре.
Прошу сильно не пинать, в геометрической терминологии я семиклассник.
Есть трехмерное пространство, координатные оси X, Y, Z (по Декарту, если не ошибаюсь). Есть куб, который стоит на своей нижней грани.

Его я поворачиваю на случайный угол по двум осям (в моем случае это X и Y, углы поворота всякие-разные, в пределах 0-90 градусов).

Возник вопрос — по какой формуле рассчитать новые углы поворота, чтобы просто перевернуть куб на другую грань? (необходимо поворачивать на разные грани)

В голове такой алгоритм — «повернуть, сбросить оси координат в изначальное положение, не трогая куб, повернуть еще раз», но на практике я его отобразить не могу. Пробовал банально суммировать поворот по каждой оси, умножать на отношения между ними, но метод «тыка» не помог.
Заранее благодарен за помощь.