Что такое калькулятор кватернионов?
Кватернион — это четырёхмерное число вида \(q = w + xi + yj + zk\), где w — скалярная (действительная) часть, а (x, y, z) — векторная (мнимая) часть. Кватернионы широко применяются в трёхмерной компьютерной графике, робототехнике, авиакосмической технике и физике, поскольку позволяют описывать вращения без эффекта складывания осей (gimbal lock), свойственного углам Эйлера. Этот калькулятор перемножает два кватерниона, а также выводит норму каждого из них и сопряжение первого.
Как пользоваться калькулятором
Введите четыре компонента (w, x, y, z) для каждого кватерниона — q1 и q2. Калькулятор вернёт произведение Гамильтона q1 × q2 в виде нового кватерниона, модуль (норму) обоих входных значений и сопряжение q1. Помните, что умножение кватернионов некоммутативно: в общем случае q1 × q2 ≠ q2 × q1, поэтому порядок множителей важен.
Разбор формулы
Произведение Гамильтона объединяет скалярную и векторную части. Скалярный результат равен w₁w₂ минус скалярное произведение векторных частей. Векторный результат равен w₁v₂ + w₂v₁ плюс векторное произведение v₁ × v₂. Норма — это евклидова длина √(w²+x²+y²+z²), а сопряжение просто меняет знак у векторных компонентов: q* = (w, −x, −y, −z).
$$\begin{gathered} q_1 q_2 = (w_1 w_2 - x_1 x_2 - y_1 y_2 - z_1 z_2) + (w_1 x_2 + x_1 w_2 + y_1 z_2 - z_1 y_2)\,i \\ + (w_1 y_2 - x_1 z_2 + y_1 w_2 + z_1 x_2)\,j + (w_1 z_2 + x_1 y_2 - y_1 x_2 + z_1 w_2)\,k \\[1.5em] \text{where}\quad \left\{ \begin{aligned} q_1 &= \text{w}_1 + \text{x}_1\,i + \text{y}_1\,j + \text{z}_1\,k \\ q_2 &= \text{w}_2 + \text{x}_2\,i + \text{y}_2\,j + \text{z}_2\,k \end{aligned} \right. \end{gathered}$$$$q_1^{*} = \text{w}_1 - \text{x}_1\,i - \text{y}_1\,j - \text{z}_1\,k$$$$\lVert q_1 \rVert = \sqrt{\text{w}_1^{2} + \text{x}_1^{2} + \text{y}_1^{2} + \text{z}_1^{2}}$$$$\lVert q_2 \rVert = \sqrt{\text{w}_2^{2} + \text{x}_2^{2} + \text{y}_2^{2} + \text{z}_2^{2}}$$
Разобранный пример
Пусть q1 = (1, 2, 3, 4) и q2 = (5, 6, 7, 8). Скалярная часть: \(1\cdot5 - 2\cdot6 - 3\cdot7 - 4\cdot8 = 5 - 12 - 21 - 32 = -60\). Компонента i: \(1\cdot6 + 2\cdot5 + 3\cdot8 - 4\cdot7 = 6 + 10 + 24 - 28 = 12\). Компонента j: \(1\cdot7 - 2\cdot8 + 3\cdot5 + 4\cdot6 = 7 - 16 + 15 + 24 = 30\). Компонента k: \(1\cdot8 + 2\cdot7 - 3\cdot6 + 4\cdot5 = 8 + 14 - 18 + 20 = 24\). Итого \(q_1 \times q_2 = (-60, 12, 30, 24)\).
Частые вопросы
Коммутативно ли умножение кватернионов? Нет. Из-за слагаемого с векторным произведением q1 × q2, как правило, не равно q2 × q1.
Что такое единичный кватернион? Это кватернион, норма которого равна 1. Единичные кватернионы описывают чистые вращения в трёхмерном пространстве.
Как повернуть вектор? Представьте вектор как кватернион с w = 0 и вычислите q · v · q*, где q — единичный кватернион, задающий вращение.