Задать вопрос
@prineside
Спам-бот

Функция вычисления угла поворота в трехмерной плоскости?

Так как в рядах программистов нередко попадаются люди, хорошо знающие математику, рискну спросить на Хабре.


Прошу сильно не пинать, в геометрической терминологии я семиклассник.


Есть трехмерное пространство, координатные оси X, Y, Z (по Декарту, если не ошибаюсь). Есть куб, который стоит на своей нижней грани.
c_1.png


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


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


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


Заранее благодарен за помощь.
  • Вопрос задан
  • 12424 просмотра
Подписаться 2 Оценить 2 комментария
Решения вопроса 1
@Zoberg
Цитата из википедии. Матрица поворота.

Пусть ось вращения задана единичным вектором image, а угол поворота image. Тогда матрица поворота в декартовых координатах имеет вид:

image

Умножая координаты какого-то вектора на матрицу поворота вы получаете координаты повернутого вектора. Все стороны куба — это векторы.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
engulfer
@engulfer
Читайте: habrahabr.ru/post/131931/
Там много всего по этой теме с самого начала и до матриц.
Про кватернионы подробнее тут или тут
Ответ написан
Комментировать
VoidVolker
@VoidVolker
Dark side eye. А у нас печеньки! А у вас?

Вот тут есть подробный мануал по вращению объектов, матрицам, углам Эйлера и кватернионам.

Ответ написан
Комментировать
Vitter
@Vitter
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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