Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование в широком смысле слова > Алгоритмика

Алгоритмика Об алгоритмах вообще; методы, обсуждения способов решения

Ответ
 
Опции темы
Старый 25.09.2014, 14:00   #1
DStalk
Разработчик
 
Аватар для DStalk
 
Регистрация: 27.06.2009
Адрес: Рязань-Москва
Сообщений: 471
Написано 401 полезных сообщений
(для 1,072 пользователей)
Относительный поворот.

Поясните, кому не лень: известны углы поворота объекта по трем осям, как можно его "довернуть", относительно новых осей и получить в итоге глобальные углы поворота (или вектор)?
Догадываюсь что это относится к линейной алгебре, но, к моему стыду, то что я изучал было давно и неправда. Нагуглил про матрицы поворота и т.п., но как-то не очень понятно расписывают.

Последний раз редактировалось DStalk, 25.09.2014 в 16:02.
(Offline)
 
Ответить с цитированием
Старый 25.09.2014, 17:03   #2
Samodelkin
Мастер
 
Регистрация: 12.01.2009
Сообщений: 979
Написано 388 полезных сообщений
(для 631 пользователей)
Ответ: Относительный поворот.

Когда ты поворачиваешь объект задавая три угла Yaw Pitch Roll это называется углы Эйлера.
Углы Эйлера не ассоциативны, то есть например если у нас есть углы Y P R то если их применить в таком порядке Y P R результат будет отличаться от результата если применить в таком порядке P Y R -- поэтому доворачивать и складывать подобные углы нельзя (ну или это очень сложно).
YawPitchRoll применяется на объект один раз.
Поэтому обычно используют кватернионы -- их можно складывать, комбинировать, интерполировать, и они могут представлять повороты больше чем на 360 градусов (например в случае быстро вращающегося колеса, когда за кадр оно делает больше одного оборота) и т. п.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
DStalk (25.09.2014)
Старый 25.09.2014, 17:28   #3
DStalk
Разработчик
 
Аватар для DStalk
 
Регистрация: 27.06.2009
Адрес: Рязань-Москва
Сообщений: 471
Написано 401 полезных сообщений
(для 1,072 пользователей)
Ответ: Относительный поворот.

Некоторые товарищи здесь реализуют собственные 3d-движки. Как просчитывается итоговый поворот, кватернионами? Например если задали сначала вращение RotateEntity(x,y,z), а дальше TurnEntity(x1,y1,z1).
(Offline)
 
Ответить с цитированием
Старый 25.09.2014, 17:39   #4
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Относительный поворот.

http://habrahabr.ru/post/183116/
http://habrahabr.ru/post/183908/
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
DStalk (25.09.2014)
Старый 25.09.2014, 17:53   #5
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Относительный поворот.

Матрицы вращения либо кватернионы да. Это математика.
У тебя есть кватернион вращения твоего объекта, далее при вызове Turn, ты создаешь кватернион вращения на каждую ось, и перемножаешь кватернион объекта на эти три кватерниона по осям, так он будет поворачиваться.

Тебе нужна мат. библиотека которая эту математику реализует, для большинства языков такие есть.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
DStalk (25.09.2014)
Старый 25.09.2014, 17:58   #6
Samodelkin
Мастер
 
Регистрация: 12.01.2009
Сообщений: 979
Написано 388 полезных сообщений
(для 631 пользователей)
Ответ: Относительный поворот.

Например к составе DX SDK есть математическая библиотека, оптимизирована с SSE2.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
DStalk (25.09.2014)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 00:35.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com