0 / 0 / 0
Регистрация: 09.10.2014
Сообщений: 3
1

Вращения тела в пространстве (углы Эйлера)

10.10.2014, 01:17. Показов 1482. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем здравствуйте!

Задача про углы Эйлера: необходимо продемонстрировать анимацию вращения тела.
Задаются три угла поворота (порядок осей вращения) и значения 3-ёх поворотов в градусах.
Надо определить конечные координаты тела и соответственно сделать анимацию этого действия.
Можете порекомендовать способы решения?

Спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.10.2014, 01:17
Ответы с готовыми решениями:

Конвертировать углы Эйлера
Здравствуйте Есть углы поворота Эйлера и порядок их применения (напр XYZ, ZXY и.т.п) в ПРАВОЙ...

Вращения платоновых тел в 3х мерном пространстве
Добрый день, уважаемые форумчане, помогите, пожалуйста, разобраться с задачей. Вопрос следующий:...

Тела вращения
основания шарового слоя находятся по разные стороны от центра шара, их радиусы равны 15 и 7 радиус...

Тела вращения
Объём конуса равен 7Pi.(Pi - число Пи) Найти объём правильной четырёхугольной пирамиды, вписанной в...

6
3959 / 2870 / 668
Регистрация: 08.06.2007
Сообщений: 9,684
Записей в блоге: 4
10.10.2014, 14:48 2
Написать матрицу оператора поворота, в которую в качестве параметров войдут эти три угла. Потом применять этот оператор к нужным точкам тела, умножая матрицу на радиус вектор точки тела.
0
0 / 0 / 0
Регистрация: 09.10.2014
Сообщений: 3
10.10.2014, 17:39  [ТС] 3
palva, а, собственно, как мы получаем координаты точек тела?
Это конечные координаты вращаемого тела?
0
3959 / 2870 / 668
Регистрация: 08.06.2007
Сообщений: 9,684
Записей в блоге: 4
10.10.2014, 18:25 4
Берем радиус-вектор точки тела до поворота, то есть из координат точки до поворота вычитаем координаты центра вращения. Умножаем вектор (слева) на матрицу поворота, получаем радиус-вектор данной точки после поворота. Далее к центру вращения прикладываем (сложение координат) этот новый радиус-вектор, получаем координаты точки после поворота.

Добавлено через 8 минут
Здесь я называю вектор, идущий от центра вращения в данную точку, радиусом-вектором точки. Это не совсем корректно, поскольку по-определению радиус-вектор идет из начала координат. Просто я не хочу придумывать для этого вектора новый термин. Но если начало координат поместить в центр вращения, то термин будет корректным.
0
0 / 0 / 0
Регистрация: 09.10.2014
Сообщений: 3
24.02.2015, 04:21  [ТС] 5
palva, никак я не могу сообразить...
Не мог бы ты мне накидать начальную версию, хотя бы что к чему?
0
3959 / 2870 / 668
Регистрация: 08.06.2007
Сообщений: 9,684
Записей в блоге: 4
24.02.2015, 13:44 6
Задача слишком неопределенная. Надо определить систему координат, что значит углы Эйлера (они могут по-разному задаваться). Анимацию какого действия надо делать, поворот вокруг одной оси или последовательные повороты вокруг осей Эйлера. Анимация это проекция тела на экран, тогда встанет вопрос о форме тела, поскольку от формы зависит, какие точки тела будут видимыми, какие нет и т. д.
0
Эксперт по математике/физике
6356 / 4064 / 1511
Регистрация: 09.10.2009
Сообщений: 7,550
Записей в блоге: 4
25.02.2015, 18:31 7
Если новый базис https://www.cyberforum.ru/cgi-bin/latex.cgi?E'^T (новые векторы расположены в столбец) выражается через старый базис как https://www.cyberforum.ru/cgi-bin/latex.cgi?E'^T=C^TE^T, то матрица перехода между базисами - это С.
Чтобы получить новые координаты одного и того же вектора в новом базисе, нужно обратную к матрице преобразования умножить на вектор-столбец старых координат справа: https://www.cyberforum.ru/cgi-bin/latex.cgi?\bar{x'}^T=C^{-1}\bar{x}^T
Например, при повороте вокруг OZ в направлении от ОХ к OY на угол https://www.cyberforum.ru/cgi-bin/latex.cgi?\gamma новые векторы выражаются через старые как https://www.cyberforum.ru/cgi-bin/latex.cgi?\begin{pmatrix}\bar{e'_1}\\ \bar{e'_2}\\ \bar{e'_3}\end{pmatrix}=\begin{pmatrix}\cos \gamma  & \sin \gamma  & 0\\ -\sin \gamma  & \cos \gamma  & 0\\ 0 & 0 & 1\end{pmatrix}\begin{pmatrix}\bar{e_1}\\ \bar{e_2}\\ \bar{e_3}\end{pmatrix}
Нужно эту матрицу транспонировать и взять обратную, получится в данном случае та же самая матрица https://www.cyberforum.ru/cgi-bin/latex.cgi?\begin{pmatrix}\cos \gamma  & \sin \gamma  & 0\\ -\sin \gamma  & \cos \gamma  & 0\\ 0 & 0 & 1\end{pmatrix}.
Значит, новые координаты будут https://www.cyberforum.ru/cgi-bin/latex.cgi?\begin{pmatrix}x'_1\\ x'_2\\ x'_3\end{pmatrix}=\begin{pmatrix}\cos \gamma  & \sin \gamma  & 0\\ -\sin \gamma  & \cos \gamma  & 0\\ 0 & 0 & 1\end{pmatrix}\begin{pmatrix}x_1\\ x_2\\ x_3\end{pmatrix}
То же самое делаете с поворотами вокруг двух других осей. При выполнении нескольких поворотов новые матрицы умножаются слева в правой части последнего выражения).
P.S. Это всё касается поворота вокруг начала координат, а не произвольной точки.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.02.2015, 18:31
Помогаю со студенческими работами здесь

Тела вращения
Боковая поверхность конуса, равна S, будучи развёрнута в плоскость, даёт круговой сектор с углом в...

Вычислить объем тела вращения

Найти полную поверхность тела вращения
Равнобедренный треугольник АВС (АС – основание) вращается вокруг вертикальной оси, параллельной...

Угловая скорость вращения тела на плоскости
Добрый день! У меня простая задача, просто хочу уточнить, правильно ли я понимаю решение. Есть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru