Кватернионы и вращение пространства
Кватернионы предоставляют удобное математическое обозначение ориентации пространства и вращения объектов в этом пространстве.
В сравнении с углами Эйлера кватернионы позволяют проще комбинировать вращения, а также избегают проблемы, известной как складывание рамок: при тангаже 90° крен и курс — одно и то же движение.
В сравнении с матрицами поворота они не страдают от накопления ошибок (любой ненулевой кватернион превращается в кватернион вращения простым нормированием), позволяют анимировать поворот кратчайшим путём без побочных эффектов вроде «конфетного фантика», и могут быть более эффективными.
Кватернионы нашли своё применение в компьютерной графике, робототехнике, навигации, молекулярной динамике.
Операции вращения[1]
[править | править код]Представление пространства вращения
[править | править код]Кватернионы единичной нормы, согласно Гамильтону называемые также версорами (англ. versors), предоставляют алгебраический способ представления вращения в трёх измерениях. Соответствие между вращениями и кватернионами в первую очередь может быть осознано через само пространство вращения — группу SO(3).
![](http://upload.wikimedia.org/wikipedia/commons/thumb/9/90/Space_of_rotations.png/250px-Space_of_rotations.png)
Любое вращение в трёхмерном пространстве — это вращение на определённый угол вокруг определённой оси. Если угол равен нулю, то выбор оси не имеет значения; таким образом, вращения на угол 0° — это точка в пространстве вращения (тождественное вращение). Для крошечного (но ненулевого) угла каждое возможное вращение на этот угол — это маленькая сфера, окружающая тождественное вращение, где каждая точка на этой сфере представляет собой ось, указывающую в определённом направлении (можно сравнить с небесной сферой). Чем больше угол вращения, тем дальше вращение от тождественного вращения; о таких вращениях можно думать как о концентрических сферах с увеличивающимся радиусом. Таким образом, вблизи тождественного вращения абстрактное пространство вращений выглядит как обычное трёхмерное пространство (которое также можно представить как центральную точку, окружённую концентрическими сферами). При увеличении угла до 360° вращения вокруг различных осей перестают расходиться и начинают становиться похожими друг на друга, становясь равными тождественному вращению, когда угол достигает 360°.
![](http://upload.wikimedia.org/wikipedia/commons/thumb/d/d4/Hypersphere_of_rotations.png/250px-Hypersphere_of_rotations.png)
Мы можем увидеть похожее поведение на поверхности сферы. Если мы расположимся на северном полюсе и начнём чертить прямые линии, исходящие из него в различных направлениях (то есть линии долготы), то сначала они будут расходиться, но затем снова сойдутся на южном полюсе. Концентрические круги, получившиеся вокруг северного полюса (широты), стянутся в одну точку на южном полюсе — когда радиус сферы сравняется с расстоянием между полюсами. Если думать о разных направлениях из полюса (то есть разные долготы) как о разных осях вращения, а о разных расстояниях от полюса (то есть широтах) как о разных углах вращения, то мы получим пространство для вращений. Получившаяся сфера представляет вращение в трёхмерном пространстве, хотя является двухмерной поверхностью, что не позволяет смоделировать гиперсферу. Однако двухмерную поверхность сферы можно представлять как часть гиперсферы (как окружность является частью сферы). Мы можем взять часть, например, для представления вращения вокруг осей в плоскости xy. Важно отметить, что угол вращения до экватора равен 180° (а не 90°); до южного полюса (с северного) 360° (а не 180°).
Северный и южный полюс представляют одинаковые вращения. Это справедливо для двух любых диаметрально противоположных точек: если одна точка — это вращение на угол вокруг оси v, то диаметрально противоположной является точка с вращением на угол вокруг оси −v. Таким образом, пространство вращений является не самой 3-сферой, а 3-полусферой (шаром на ней радиуса ) с отождествлёнными диаметрально противоположными точками, что диффеоморфно проективному пространству . Однако для большинства целей можно думать о вращениях как о точках на сфере несмотря на то, что они обладают двойной избыточностью.
Определение пространства вращения
[править | править код]Координаты точки на поверхности сферы можно задать двумя числами, например широтой и долготой. Однако такая координата, как долгота, на северном и южном полюсах начинает вести себя неопределённо (проявляет вырожденность), хотя северный и южный полюса принципиально не отличаются от любой другой точки поверхности сферы. Это показывает, что ни одна координатная система не может двумя координатами охарактеризовать положение в пространстве. Этого можно избежать, поместив сферу в трёхмерное пространство, охарактеризовав её декартовыми координатами (w, x, y), помещая северный полюс на (w, x, y) = (1, 0, 0), южный полюс на (w, x, y) = (−1, 0, 0), а экватор на w = 0, x² + y² = 1. Точки на сфере удовлетворяют отношению w² + x² + y² = 1. В итоге получаются две степени свободы, хотя имеется три координаты. Точка (w, x, y) представляет вращение вокруг оси (x, y, 0) на угол .
Таким же образом пространство трёхмерных вращений может быть охарактеризовано тремя углами (углами Эйлера), однако любое такое представление начинает вырождаться на некоторых точках гиперсферы. Этой проблемы можно избежать, используя евклидовы координаты w, x, y, z, где w² + x² + y² + z² = 1. Точка (w, x, y, z) представляет вращение вокруг осей (x, y, z) на угол
Коротко о кватернионах
[править | править код]Комплексное число может быть определено введением абстрактного символа i, который удовлетворяет обычным правилам алгебры, а также правилу . Этого достаточно для воспроизведения всех правил арифметики комплексных чисел. Например:
- .
Таким же образом кватернионы могут быть определены введением абстрактных символов i, j, k, умножение которых задаются по правилу
а умножение на вещественные числа определяются обычным образом, причём умножение полагается ассоциативным, но не коммутативным (примером некоммутативного умножения является также умножение матриц). Из этого следуют все правила кватернионной арифметики, например
- .
Мнимая часть кватерниона ведёт себя так же, как и вектор , а вещественная часть a ведёт себя так же, как и скаляр в . При использовании кватернионов можно, следуя Гамильтону, описывать их как сумму скаляра и вектора и использовать векторное и скалярное произведения и (идея которых была подсказана кватернионами). При этом они связаны с обычным кватернионным умножением следующей формулой:
- .
Векторное произведение некоммутативно, а произведения скаляр—скаляр и скаляр—вектор коммутативны. Из этих правил следует:
- .
Обратным (слева и справа) для ненулевого кватерниона является
- ,
что может быть проверено прямым вычислением.
Определение пространства вращения через кватернионы
[править | править код]Допустим (w, x, y, z) — координаты вращения, согласно прежнему описанию. Тогда кватернион q можно определить как
- ,
где — единичный вектор. Таким образом, произведение
вращает вектор на угол вокруг оси заданной вектором . Вращение происходит по часовой стрелке, если рассматривать вращение по направлению вектора ; то есть, направление вектора совпадает с направлением поступательного движения правого винта, когда он проворачивается на положительный угол .
Можно взять композицию вращений на кватернионы, перемножив их (от порядка умножения зависит порядок вращения). Таким образом, вращения на кватернионы и равно
что то же самое, что и вращение на , а затем на .
Обращение кватерниона — это то же, что и вращение в противоположном направлении, таким образом . Квадрат кватерниона — это вращение на двойной угол вокруг той же оси. В общем смысле, — это вращение вокруг оси на угол в раз больший первоначального. Вместо может быть любое вещественное число[источник не указан 3484 дня], позволяя использовать кватернионы для плавной интерполяции между двумя положениями в пространстве.
Вращение на единичный кватернион
[править | править код]Пусть u — это единичный вектор (ось вращения), а кватернион. Наша цель — показать, что
вращает вектор v на угол α вокруг оси u. Раскрыв скобки, получаем:
где и — это компоненты вектора v, которые перпендикулярны и параллельны оси u, соответственно.
Получившийся результат является формулой вращения на угол α вокруг оси u.
Умножение вектора на −1, то есть взятие противоположного кватерниона, не изменяет вращение. В частности, кватернионы 1 и −1 оба определяют тождественное вращение. Более абстрактно, векторы принадлежат группе Ли SU(2), диффеоморфной 3-сфере. Эта группа двукратно накрывает пространство вращений SO(3).
Вращение четырёхмерного евклидова пространства
[править | править код]Четырёхмерное вращение описывается двумя кватернионами единичной нормы, с точностью до умножения обоих одновременно на −1.
Вариации и обобщения
[править | править код]Похожие формулы позволяют применить бикватернионы для описания преобразований Лоренца — «вращений» 4-мерного пространства Минковского.
См. также
[править | править код]Примечания
[править | править код]- ↑ Rotations, Quaternions, and Double Groups / Altmann, Simon L. — Mineola: Dover Publications, 1986. — 317 p.
Литература
[править | править код]- В. И. Арнольд. Геометрия комплексных чисел, кватернионов и спинов. — М.: МЦНМО, 2002. — 40 с. — ISBN 5-94057-025-9.
- И. Л. Кантор, А. С. Солодовников Гиперкомплексные числа (недоступная ссылка). — М.: Наука, 1973. — 144 с.
Ссылки
[править | править код]- Shoemake, Ken. Quaternion tutorial
- Hart, Francis, Kauffman. Quaternion demo Архивная копия от 25 февраля 2009 на Wayback Machine
- Byung-Uk Lee, Unit Quaternion Representation of Rotation Архивная копия от 27 сентября 2007 на Wayback Machine
- Ibanez, Luis, Quaternion Tutorial I
- Ibanez, Luis, Quaternion Tutorial II
- Поворот в пространстве и кватернионы Архивная копия от 30 декабря 2013 на Wayback Machine
- Вращение в 3D при помощи гиперкомплексных чисел Архивная копия от 19 апреля 2014 на Wayback Machine
- Верзор // Большая советская энциклопедия : в 66 т. (65 т. и 1 доп.) / гл. ред. О. Ю. Шмидт. — М. : Советская энциклопедия, 1926—1947.