Показать сообщение отдельно
Старый 22.10.2009, 01:22   #1
falcon
Разработчик
 
Аватар для falcon
 
Регистрация: 12.07.2008
Сообщений: 523
Написано 196 полезных сообщений
(для 470 пользователей)
Ориентация, Вращения, Кватернион

Всем привет... назрел такой вопрос
Хочу сделать аналог TurnEntity (x,y,z)
т.е. задавать вращения относительно базисных векторов сущности(ентити)
с большим трудом вьезжал в кватернионы...читал кучу статей, видел кучу исходников.. но хочется самому понять а не с копи3.14здеть.
так вот.. единственное, что вроде бы осветило суть кватернионов, было понимание того что кватернион - это, нечто содержащие и вектор относительно которого производится поворот, и угол.
(вот один из вопросов - преобразуя в будущем кватернион в матрицу (например мы повернули up и dir вокруг right вектора) мы получаем матрицу из трех ортогональных векторов?)

вот что вызывает затруднение:

на вход ф-ции подается 3 параметра.
внутри ф-ции создаётся три временных кватерниона, перемножаются между собой (получаем "новое вращение") и домножаем на "старый" кватернион... так? )))
а как сформировывать вектора для "нового вращения" ??
хранить отдельно три вектора (right up dir) формировать из них кватернион, домнажать на старый, формировать из всего этого матрицу, и вытягивать из матрицы эти вектора??? о0
или я в корне не правильно понимаю вращения кватернионами и есть более магический способ? о0
(Offline)
 
Ответить с цитированием