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