tgoop.com/savostyanov_dmitry/431
Last Update:
Кватернионы
Есть легенда, что 16 октября 1843 года сэр Уильям Гамильтон знатно накидался и, переходя мост в Дублине, придумал кватернионы. Почти 180 лет спустя я, будучи первый день в отпуске, бахнул пива, затем текилы, шлифанул вином и набрался смелости написать про кватернионы.
В 3D-графике регулярно возникает задача вращать различные объекты в пространстве: камеру, сцену, суставы персонажей. Из курса линейной алгебры вы вероятно помните, что описывать вращения можно с помощью матриц поворота. Например, вращение вокруг оси Ox можно описать матрицей 3х3
1 0 0
0 cos(phi) -sin(phi)
0 sin(phi) cos(phi)
Здесь мы по столбцам выражаем координаты нового (повернутого на угол phi) ортонормированного базиса в старом.
Так вот оказывается, что любое вращение 3D-пространства является вращением вокруг некоторой оси (теорема Эйлера), а описать его можно с помощью 4D-кватерниона
q = cos(phi/2) + sin(phi/2) * (xi + yj + zk),
где i^2 = j^2 = k^2 = -1 — мнимые единицы, ijk = -1,
(x, y, z)^T — ось вращения.
Если правильно понимаю, в компьютерных науках основной профит кватернионов в том, что вместо 3х3=9 чиселок для матрицы поворота в памяти хранятся всего 4 коэффициента (x, y, z, w). В чистой математике профит в том, что можно оперировать как с комплексными числами с поправкой на некоммутативность умножения.
Я в теме только начал разбираться, поэтому могу подсказать несколько видео, вдруг кому-нибудь будет интересно:
- Алгоритм использования кватернионов на практике
- Связь алгебры (кватернионов) и геометрии (вращений)
- Савватеев, Доказательство теоремы Эйлера об одной оси вращения (далее в плейлисте 17+ есть и вся теория кватернионов с доказательствами основных утверждений)
BY Дмитрий Савостьянов Вещает
Share with your friend now:
tgoop.com/savostyanov_dmitry/431