В статье автор определяет оптимальный метод для моделирования поворотов в пространстве.
Ключевые слова: кватернион, поворот, трехмерное пространство, углы Эйлера, матрица поворотов.
Для того, чтобы решить задачи моделирования поворотов различных объектов в пространстве, существует несколько методов: углы Эйлера, кватернионы и матрицы поворота. Рассмотрим вариант использования кватернионов, поскольку при таком методе возрастет точность поворотов, а также скорость моделирования.
Кватернион, как видно из названия, является набором четырех параметров, определяющих вектор и угол вращения вокруг этого вектора. В реализации это работает следующим образом: параметры единичного вектора должны быть умножены на синус половины угла поворота. Четвертый компонент — косинус половины угла поворота.
С математической точки зрения кватернионы представляют собой обобщение комплексного числа, иными словами, примером гиперкомплексной системы. Они являются упорядоченной четверкой действительных чисел s, a, b, c, взаимодействие которых происходит благодаря четырём базисным элементам 1, i, j, k, которые обладают следующими свойствами (таблица 1):
Таблица 1
1 |
i 2 = j 2 = k 2 = −1 |
2 |
ij = k |
3 |
jk = i |
4 |
ki = j |
5 |
ji = −k |
6 |
kj = −i |
7 |
ik = −j |
Кватернион можно разделить на скалярную часть s и векторную v:
v = a∗i + b∗j + c∗k
Q = s + v
Одной из ключевых особенностей кватернионов является то, что подмножество кватернионов состоит из вещественных и комплексных чисел, векторов в трехмерном пространстве. Рассмотрим базовые математические операции при работе с кватернионами, где Q 1 =s 1 +v 1 и Q 2 =s 2 +v 2 :
1. Сложение кватернионов
Q 1 + Q 2 = (s 1 + s 2 ) + (v 1 + v 2 )
2. Произведение кватернионов
Q 1 *Q 2 = s 1 *s 2 + s 2 *v 1 + s 1 *v 2 — (v 1 ,v 2 ) + [v 1 ,v 2 ]
Важной особенностью операции является то, что она некоммутативна. Кватернион считается сопряженным по отношению к Q = s + ai + bj + ck, если Q′ = s − (ai + bj + ck). При таких условиях произведение представляет собой число, которое равно квадрату модуля кватерниона:
Q: |Q| 2 =s 2 +a 2 +b 2 +c 2
Для удобства можно рассматривать кватернион как четырехмерный вектор, некоторые операции, выполняемые с ним, выполняются как над векторами.
К примеру, если выполнить умножение между кватернионами, в результате будет получен кватернион, который дает после поворота такой же результат, если бы были выполнены последовательно повороты умножаемых кватернионов. Возьмем для примера два кватерниона:
Q 1 = [cos(alpha/2), 0, 0, sin(alpha/2)];
Q 2 = [cos(beta/2), sin(beta/2), 0, 0].
После операции умножения кватернионов мы получим следующий результат:
Q 1 *Q 2 = [cos(alpha/2)cos(beta/2),cos(alpha/2)sin(beta/2),sin(alpha/2)×
×sin(beta/2),cos (beta/2) sin(alpha/2)].
Операция сложения описывается как «смесь» вращений, то есть в конечном итоге мы получим вращение, которое находится между двумя кватернионами.
После операции сложения кватернионов мы получим следующий результат:
Q 1 + Q 2 = [cos(alpha/2) + cos(beta/2), sin(beta/2), 0, sin(alpha/2)].
Как говорилось ранее, существует несколько вариантов для моделирования различных поворотов объектов в пространстве, поэтому рассмотрим оставшиеся методы:
1) Углы Эйлера для описания поворотов в трехмерном пространстве
Базовой проблемой данного метода является «Шарнирный замок», иными словами, по причине порядка вращения, а также порядка этих поворотов результирующий поворот в итоге может отличаться от того, к которому стремится поставленная задача. Наиболее подходящей областью для применения Эйлеровских углов могут служить постоянные ко времени повороты.
2) Матрица поворота
Она также является способом задания вращения. Для того, чтобы комбинировать поворот, необходимо перемножить матрицы, как правило, достаточно использовать матрицы размерности 3х3. Ключевой недостаток метода использования матриц заключается в невозможности провести интерполяцию. Наиболее подходящей областью для применения способа матричного поворота является поворот стандартной матрицы вокруг одной из 3 осей, поскольку вычисления требуют минимум времени для вычислений.
Используя кватернион с модулем, равным 1, можно задать любой поворот вокруг любой оси. Рассмотрим простую задачу в качестве примера, где необходимо последовательно совершить два поворота на 90 градусов каждый: сначала вокруг вектора k, а после вокруг вектора j. Представим два этих поворота в виде произведения двух кватернионов, где: Q 1 = cos45 + jsin45 и Q 2 = cos45 +ksin45. В конечном итоге получается поворот на 120 градусов вокруг оси, которая равнонаклонена к изначальным осям i, j и k.
Однако, самым важным преимуществом кватернионов является возможность провести их интерполяцию, причем интерполирование кватернионов можно производить посредством сферической линейной интерполяции. Так при суммировании кватернионов Q 1 и Q 2 получится кватернион, который является представителем плоскости вращения по кратчайшей дуге между v 1 и v 2 . Такой вид интерполяции имеет преимущество, которое заключается в том, что благодаря нему можно просчитать наиболее кратчайший поворот на поверхности сферы.
Исходя из выше рассмотренных методов, можно выделить кватернионы, как наиболее оптимальный метод для моделирования поворотов в пространстве, если сравнивать их с другими методиками.
Литература:
- Джон, Х. К. О кватернионах и октавах, об их геометрии, арифметике и симметриях / Х. К. Джон, А. С. Дерек. — 2-е изд. — МЦНМО, 2019. — 184 c.
- Берёзкин, Е. Н. Курс теоретической механики / Е. Н. Берёзкин. — 2-е изд. — МГУ, 1974. — 641 c.
- Арнольд, В. И. Геометрия комплексных чисел, кватернионов и спинов / В. И. Арнольд. — МЦНМО, 2014. — 641 c.