Повороты в 3D и дублинский мост
В 2D всё было просто — одно комплексное число, один поворот. Звучит логично, что для 3D надо бы придумать «тройные» комплексные числа. И Гамильтон потратил 10 лет пытаясь это сделать, пока не понял что надо отказаться от коммутативности — в те года пробивная идея, математики дуреют от этой прикормки.
Осенним днём 16 октября 1843 года, во время прогулки с женой по мосту Брогам (он же Брум) в Дублине, его осенило — нужно не три, а четыре числа! А вы говорите женщины не нужны!
В порыве вдохновения он вырезал на камне моста формулу:
i² = j² = k² = ijk = -1
Так появились кватернионы - особая алгебраическая структура:
q = a + bi + cj + dk.
Поворот в пространстве аналогично "обычным" комплексным числам записывается как:
q = cos(θ/2) + (xi + yj + zk)sin(θ/2)
Например, поворот на 90° вокруг оси Z записывается как:
q = cos(45°) + k·sin(45°) = 0.707 + 0.707k
Если этот поворот применить к точке (1,0,0), то получаем точку (0,1,0) — точка перемещается в положение "на 3 часа" если смотреть "сверху". В 3D это всё муторно объяснять где там верх, но если у вас под рукой есть РУКА то вы можете из неё собрать тройку векторов и попробовать понять о чём речь, да.
et viola, сам кварернион, получается, задаёт и вектор (x,y,z) — ось вокруг которой будет происходить поворот — и величину угла поворота θ вокруг этой оси! Всё это оказалось сейчас называют группой SO(3), то есть всеми возможными поворотами в трёхмерном пространстве.
А это всё, соответственно, значит что если у нас два поворота подряд, нам нужно просто найти общий кватернион (в силу замкнутости группы) которые будет эквивалентны последовательному применению этих двух поворотов (это ща вообще важный тейк, который стоит ещё раз. Делов-то!
Например:
- Поворот на 60° вокруг оси X: q₁ = 0.866 + 0.5i
- Потом на 30° вокруг оси Y: q₂ = 0.966 + 0.259j
Чтобы получить один эквивалентный поворот, перемножаем кватернионы: q₂q₁
и получаем: 0.837 + 0.483i + 0.224j - 0.129k
(числа это sin/cos соответствующих углов, да)
ЭТО Я ВСЁ ЕЩЁ ОБЪЯСНЯЮ МЕМ, ПРАВДА!!!
И так как кватернионы это офигенно круто, то каждый год 16 октября математики и им сочувствующие собираются на этом мосту и отмечают это событие прогулкой — так и называется, Hamilton Walk. Оригинальная надпись давно стёрлась, но осталась табличка, напоминающая об этом дне торжества человеческой мысли. Ещё одна причина как-нибудь оказаться в Дублине, эх