Умные вопросы
Войти
Регистрация
точка стояния
8 года
назад
от
Екатерина Круглова
1 ответ
▲
▼
0
голосов
С начало вам надо чётко определить, что такое "Углы поворота объекта по всем трём осям". Поскольку повороты не коммутируют, то задание поворота несколькими углами - это всегда последовательность поворотов относительно некоторых осей на определённый угол (или поворот вокруг одного вектора - но это уже кватернионное представление) . Например, углы Эйлера - последовательность поворотов относительно OZ, OX и снова OZ.
Если у вас объект получается из базового объекта последовательностью поворотов (OX, a) , (OY, b) , (OZ, c) (a, b, c - углы в радианах) , и есть вектор (dx, dy, dz) в локальной системе кординат повёрнутого объекта, то получить сдвиг объекта на этот вектор в глобальной системе кординат можно так:
dy1=cos (a) *dy+sin (a) *dz; dz1=-sin (a) *dy+cos (a) *dz; / поворот относительно OX
dx1=cos (b) *dx-sin (b) *dz1; dz2=sin (b) *dx+cos (b) *dz1; / поворот относительно OY
dx2=cos (c) *dx1+sin (c) *dy1; dy2=-sin (c) *dx1+cos (c) *dy1; / поворот относительно OZ
Тогда (dx2, dy2, dz2) - искомый вектор сдвига.
8 года
назад
от
Рустем Фатхетдинов
Связанные вопросы
1
ответ
Что делать? доильный аппарат подключается но не доит.
8 года
назад
от
крылов михаил
2
ответов
Переведите предложение с английского на русский. Спасибо
4 года
назад
от
RCWAshleigh3
3
ответов
Не могли бы создать комп. программу которая позволяла выигрывать в 5 из 36, или в похожей лотере?
10 года
назад
от
император Нильфгаарда