При использовании для представления вращения единичные кватернионы также называются кватернионами вращения , поскольку они представляют группу 3D-вращения . При использовании для представления ориентации (вращения относительно опорной системы координат) они называются кватернионами ориентации или кватернионами положения . Пространственное вращение вокруг фиксированной точки радиан вокруг единичной оси , которая обозначает ось Эйлера , задается кватернионом , где и .
По сравнению с матрицами вращения кватернионы более компактны, эффективны и численно стабильны . По сравнению с углами Эйлера их проще составлять . Однако они не столь интуитивно понятны и просты для понимания, и из-за периодической природы синуса и косинуса углы вращения, отличающиеся точно на естественный период, будут закодированы в идентичные кватернионы, а восстановленные углы в радианах будут ограничены .
Использование кватернионов в качестве вращений
В трехмерном пространстве, согласно теореме Эйлера о вращении , любое вращение или последовательность вращений твердого тела или системы координат вокруг фиксированной точки эквивалентны одному вращению на заданный угол вокруг фиксированной оси (называемой осью Эйлера ), которая проходит через фиксированную точку. [6] Ось Эйлера обычно представлена единичным вектором ( на рисунке). Таким образом, любое вращение в трех измерениях можно представить как через вектор и угол .
Кватернионы дают простой способ кодирования этого [7] представления оси-угла с использованием четырех действительных чисел и могут использоваться для применения (вычисления) соответствующего вращения к вектору положения (x,y,z) , представляющему точку относительно начала координат в R 3 .
Евклидовы векторы, такие как (2, 3, 4) или (ax,ay,az ) , можно переписать как 2i + 3j + 4k или axi + ayj + azk , где i , j , k — единичные векторы , представляющие три декартовы оси ( традиционно x , y , z ) , а также подчиняющиеся правилам умножения фундаментальных единиц кватерниона, интерпретируя евклидов вектор ( ax , ay , az ) как векторную часть чистого кватерниона ( 0, ax , ay , az ) .
Поворот угла вокруг оси, определяемой единичным вектором
может быть представлено сопряжением единичным кватернионом q . Поскольку произведение кватернионов дает 1, то с использованием ряда Тейлора показательной функции получается расширение формулы Эйлера :
Можно показать [8] , что желаемое вращение можно применить к обычному вектору в трехмерном пространстве, рассматриваемому как векторная часть чистого кватерниона , оценив сопряжение p ′ с помощью q , определяемое как:
с использованием произведения Гамильтона , где векторная часть чистого кватерниона L( p ′ ) = (0, r x , r y , r z ) является новым вектором положения точки после поворота. В программной реализации сопряжение достигается путем построения чистого кватерниона, векторная часть которого равна p , а затем выполнения сопряжения кватерниона. Векторная часть полученного чистого кватерниона является искомым вектором r . Очевидно, обеспечивает линейное преобразование пространства кватернионов в себя; [9] также, поскольку является унитарным, преобразование является изометрией. Кроме того, и поэтому оставляет векторы, параллельные инвариантным. Таким образом, разлагая как вектор, параллельный векторной части и вектор, нормальный к векторной части и показывая, что применение к нормальной составляющей вращает ее, утверждение показано. Итак, пусть будет компонентой , ортогональной векторной части и пусть . Оказывается, что векторная часть задается выражением
.
Сопряжение p ′ с q можно выразить с меньшим количеством арифметических операций следующим образом:
Геометрическим фактом, независимым от кватернионов, является существование отображения два к одному из физических вращений в матрицы вращательного преобразования. Если 0 ⩽ ⩽ , физическое вращение вокруг на и физическое вращение вокруг на оба достигают одной и той же конечной ориентации непересекающимися путями через промежуточные ориентации. Подставляя эти векторы и углы в формулу для q выше, можно обнаружить, что если q представляет первое вращение, − q представляет второе вращение. Это геометрическое доказательство того, что сопряжение по q и по − q должно давать одну и ту же матрицу вращательного преобразования. Этот факт подтверждается алгебраически, отмечая, что сопряжение является квадратичным по q , поэтому знак q отменяется и не влияет на результат. (См. отображение 2:1 SU(2) в SO(3) ) Если оба вращения являются полуоборотом , то и q и − q будут иметь действительную координату, равную нулю. В противном случае один будет иметь положительную действительную часть, представляющую поворот на угол меньше , а другой будет иметь отрицательную действительную часть, представляющую поворот на угол больше .
Математически эта операция переносит множество всех «чистых» кватернионов p (тех, у которых действительная часть равна нулю) — которые составляют 3-мерное пространство среди кватернионов — в себя, посредством желаемого поворота вокруг оси u на угол θ. (Каждый действительный кватернион переносится в себя этой операцией. Но для целей поворотов в 3-мерном пространстве мы игнорируем действительные кватернионы.)
Вращение происходит по часовой стрелке, если наша линия зрения указывает в том же направлении, что и .
Отсюда следует, что сопряжение произведением двух кватернионов является композицией сопряжений этими кватернионами: Если p и q — единичные кватернионы, то вращение (сопряжение) по pq равно
,
что то же самое, что и вращение (сопряжение) на q , а затем на p . Скалярная составляющая результата обязательно равна нулю.
Кватернионная инверсия вращения — это противоположное вращение, так как . Квадрат вращения кватерниона — это вращение на удвоенный угол вокруг той же оси. В более общем случае q n — это вращение на n раз больше угла вокруг той же оси, что и q . Это можно распространить на произвольные действительные n , что позволяет выполнять плавную интерполяцию между пространственными ориентациями; см. Slerp .
Два кватерниона вращения можно объединить в один эквивалентный кватернион с помощью соотношения:
в котором q ′ соответствует вращению q 1 , за которым следует вращение q 2 . Таким образом, произвольное число вращений может быть составлено вместе и затем применено как одно вращение. (Обратите внимание, что умножение кватернионов не является коммутативным .)
Пример операции сопряжения
Сопряжение p с q относится к операции p ↦ qpq −1 .
Рассмотрим вращение f вокруг оси с углом поворота 120°, или 2π/3 радианы .
Длина равна √ 3 , половинный угол равен π/3 (60°) с косинусом 1/2 , ( cos 60° = 0,5 ) и синус √ 3/2 , ( sin 60° ≈ 0,866 ). Таким образом, мы имеем дело с сопряжением посредством единичного кватерниона
Если f — функция вращения,
Можно доказать, что обратный единичному кватернион получается просто путем изменения знака его мнимых компонентов. Как следствие,
и
Это можно упростить, используя обычные правила арифметики кватернионов, до
Как и ожидалось, вращение соответствует удержанию куба неподвижно в одной точке и его вращению на 120° вокруг длинной диагонали, проходящей через неподвижную точку (обратите внимание, как три оси циклически переставляются ).
Это можно получить с помощью векторного исчисления и линейной алгебры , если мы выразим и как скалярную и векторную части и используем формулу для операции умножения в уравнении . Если мы запишем как , как и как , где , наше уравнение превратится в . Используя формулу для умножения двух кватернионов, которые выражены как скалярная и векторная части,
Поскольку , мы можем определить как , что при расширении должно привести к выражению, записанному в матричной форме выше.
Восстановление представления оси-угла
Выражение вращает любой векторный кватернион вокруг оси, заданной вектором , на угол , где и зависит от кватерниона .
и может быть найдена из следующих уравнений:
где — арктангенс с двумя аргументами . Хотя он работает, он численно нестабилен (неточен) вблизи для чисел с конечной точностью.
Следует соблюдать осторожность, когда кватернион приближается к скаляру , поскольку из-за вырождения ось тождественного вращения не является четко определенной.
Состав пространственных вращений
Преимущество кватернионной формулировки композиции двух вращений R B и R A заключается в том, что она напрямую дает ось вращения и угол составного вращения R C = R B R A .
Пусть кватернион, связанный с пространственным вращением R, построен из его оси вращения S с углом вращения вокруг этой оси. Соответствующий кватернион задается как
Тогда композиция вращения R B с R A представляет собой вращение R C = R B R A с осью вращения и углом, определяемыми произведением кватернионов
, то есть
Разверните этот продукт, чтобы получить
Разделим обе части этого уравнения на тождество, которое является законом косинусов на сфере ,
и вычислим
Это формула Родригеса для оси составного вращения, определяемого через оси двух вращений. Он вывел эту формулу в 1840 году (см. стр. 408). [11]
Три оси вращения A , B и C образуют сферический треугольник, а двугранные углы между плоскостями, образованными сторонами этого треугольника, определяются углами вращения. Гамильтон [12] представил компонентную форму этих уравнений, показывающую, что кватернионное произведение вычисляет третью вершину сферического треугольника из двух заданных вершин и связанных с ними длин дуг, что также определяет алгебру для точек в эллиптической геометрии .
Композиция ось-угол
Нормализованная ось вращения, удаляя из расширенного продукта, оставляет вектор, который является осью вращения, умноженной на некоторую константу. Следует соблюдать осторожность при нормализации вектора оси, когда это или где вектор близок к ; что является тождеством или нулевым вращением вокруг любой оси.
Повернутый кватернион p' = q p q −1 необходимо дифференцировать относительно вращающегося кватерниона q , когда вращение оценивается из числовой оптимизации. Оценка угла поворота является существенной процедурой при регистрации 3D-объектов или калибровке камеры. Для унитарного q и чисто мнимого p , то есть для вращения в 3D-пространстве, производные повернутого кватерниона можно представить с использованием записи матричного исчисления как
Вывод можно найти в [13] .
Фон
Кватернионы
Комплексные числа можно определить, введя абстрактный символ i , который удовлетворяет обычным правилам алгебры и дополнительно правилу i 2 = −1 . Этого достаточно, чтобы воспроизвести все правила арифметики комплексных чисел: например:
Таким же образом кватернионы можно определить, введя абстрактные символы i , j , k , которые удовлетворяют правилам i 2 = j 2 = k 2 = i j k = −1 и обычным алгебраическим правилам, за исключением коммутативного закона умножения (знакомым примером такого некоммутативного умножения является матричное умножение ). Из этого следуют все правила арифметики кватернионов, такие как правила умножения базисных элементов кватерниона . Используя эти правила, можно показать, что:
Мнимая часть кватерниона ведет себя как вектор в трехмерном векторном пространстве , а действительная часть a ведет себя как скаляр в R. Когда кватернионы используются в геометрии, удобнее определять их как скаляр плюс вектор :
Некоторые могут посчитать странным прибавление числа к вектору , поскольку это объекты совершенно разной природы, или умножение двух векторов, поскольку эта операция обычно не определена. Однако, если вспомнить, что это просто обозначение действительной и мнимой частей кватерниона, это становится более законным. Другими словами, правильным рассуждением является сложение двух кватернионов, одного с нулевой векторной/мнимой частью, а другого с нулевой скалярной/действительной частью:
Мы можем выразить умножение кватернионов на современном языке векторных перекрестных и скалярных произведений (которые на самом деле были изначально вдохновлены кватернионами [14] ). При умножении векторных/мнимых частей вместо правил i 2 = j 2 = k 2 = ijk = −1 мы имеем правило умножения кватернионов:
где:
— результирующий кватернион,
векторное векторное произведение (вектор),
является векторным скалярным произведением (скаляром).
Умножение кватернионов некоммутативно (из-за перекрестного произведения, которое антикоммутирует ), в то время как скалярно-скалярные и скалярно-векторные умножения коммутируют. Из этих правил немедленно следует, что (см. Кватернионы § Кватернионы и трехмерная геометрия ):
(Левая и правая) мультипликативная обратная или обратная величина ненулевого кватерниона задается отношением сопряженности к норме ( см. подробности ):
Очень формальное объяснение свойств, используемых в этом разделе, дано Альтманом. [15]
Гиперсфера вращений
Визуализация пространства вращений
Единичные кватернионы представляют группу евклидовых вращений в трех измерениях очень простым способом. Соответствие между вращениями и кватернионами можно понять, сначала визуализировав само пространство вращений.
Чтобы визуализировать пространство вращений, полезно рассмотреть более простой случай. Любое вращение в трех измерениях можно описать вращением на некоторый угол вокруг некоторой оси ; для наших целей мы будем использовать вектор оси , чтобы установить хандичность для нашего угла. Рассмотрим особый случай, в котором ось вращения лежит в плоскости xy . Затем мы можем указать ось одного из этих вращений точкой на окружности, через которую проходит вектор, и мы можем выбрать радиус окружности для обозначения угла вращения .
Аналогично, вращение, ось вращения которого лежит в плоскости xy , можно описать как точку на сфере фиксированного радиуса в трех измерениях. Начиная с северного полюса сферы в трехмерном пространстве, мы определяем точку на северном полюсе как тождественное вращение (поворот на нулевой угол). Так же, как и в случае тождественного вращения, ось вращения не определена, а угол вращения (ноль) не имеет значения. Вращение, имеющее очень малый угол поворота, можно задать срезом через сферу параллельно плоскости xy и очень близко к северному полюсу. Окружность, определяемая этим срезом, будет очень маленькой, соответствующей малому углу поворота. По мере того, как углы поворота становятся больше, срез перемещается в отрицательном направлении z , и окружности становятся больше, пока не будет достигнут экватор сферы, что будет соответствовать углу поворота 180 градусов. Продолжая движение на юг, радиусы окружностей теперь становятся меньше (соответствуя абсолютному значению угла поворота, рассматриваемого как отрицательное число). Наконец, по достижении южного полюса окружности снова сжимаются до тождественного вращения, которое также указывается как точка на южном полюсе.
Обратите внимание, что ряд характеристик таких вращений и их представлений можно увидеть с помощью этой визуализации. Пространство вращений непрерывно, каждое вращение имеет окрестность вращений, которые почти одинаковы, и эта окрестность становится плоской по мере сжатия окрестности. Кроме того, каждое вращение фактически представлено двумя антиподными точками на сфере, которые находятся на противоположных концах линии, проходящей через центр сферы. Это отражает тот факт, что каждое вращение может быть представлено как вращение вокруг некоторой оси или, что эквивалентно, как отрицательное вращение вокруг оси, указывающей в противоположном направлении (так называемое двойное покрытие ). «Широта» круга, представляющего определенный угол вращения, будет составлять половину угла, представленного этим вращением, поскольку при перемещении точки с северного полюса на южный широта изменяется от нуля до 180 градусов, в то время как угол вращения изменяется от 0 до 360 градусов. («долгота» точки в таком случае представляет определенную ось вращения.) Однако следует отметить, что этот набор вращений не замкнут относительно композиции. Два последовательных вращения с осями в плоскости xy не обязательно дадут вращение, ось которого лежит в плоскости xy , и, таким образом, не может быть представлена как точка на сфере. Этого не будет в случае общего вращения в 3-пространстве, в котором вращения образуют замкнутое множество при композиции.
Эту визуализацию можно расширить до общего вращения в трехмерном пространстве. Тождественное вращение — это точка, а небольшой угол вращения вокруг некоторой оси можно представить как точку на сфере с малым радиусом. По мере увеличения угла вращения сфера растет, пока угол вращения не достигнет 180 градусов, в этой точке сфера начинает сжиматься, становясь точкой, когда угол приближается к 360 градусам (или нулю градусов от отрицательного направления). Этот набор расширяющихся и сжимающихся сфер представляет собой гиперсферу в четырехмерном пространстве (3-сферу). Так же, как в более простом примере выше, каждому вращению, представленному как точка на гиперсфере, соответствует его антиподальная точка на этой гиперсфере. «Широта» на гиперсфере будет составлять половину соответствующего угла вращения, и окрестность любой точки станет «более плоской» (т. е. будет представлена трехмерным евклидовым пространством точек) по мере сжатия окрестности. Это поведение соответствует набору единичных кватернионов: общий кватернион представляет точку в четырехмерном пространстве, но ограничение его единичной величиной дает трехмерное пространство, эквивалентное поверхности гиперсферы. Величина единичного кватерниона будет равна единице, что соответствует гиперсфере единичного радиуса. Векторная часть единичного кватерниона представляет радиус 2-сферы, соответствующей оси вращения, а ее величина является синусом половины угла поворота. Каждое вращение представлено двумя единичными кватернионами противоположного знака, и, как и в пространстве вращений в трех измерениях, кватернионное произведение двух единичных кватернионов даст единичный кватернион. Кроме того, пространство единичных кватернионов является «плоским» в любой бесконечно малой окрестности данного единичного кватерниона.
Параметризация пространства вращений
Мы можем параметризовать поверхность сферы двумя координатами, такими как широта и долгота. Но широта и долгота ведут себя плохо ( вырождаются , как описано в теореме о волосатом шаре ) на северном и южном полюсах, хотя полюса по сути не отличаются от любых других точек на сфере. На полюсах (широты +90° и −90°) долгота становится бессмысленной.
Можно показать, что ни одна двухпараметрическая система координат не может избежать такого вырождения. Мы можем избежать таких проблем, вложив сферу в трехмерное пространство и параметризовав ее тремя декартовыми координатами ( w , x , y ) , поместив северный полюс в ( w , x , y ) = (1, 0, 0) , южный полюс в ( w , x , y ) = (−1, 0, 0) и экватор в w = 0 , x2 + y2 = 1. Точки на сфере удовлетворяют ограничению w2 + x2 + y2 = 1 , поэтому у нас все еще есть только две степени свободы, хотя есть три координаты. Точка ( w , x , y ) на сфере представляет собой поворот в обычном пространстве вокруг горизонтальной оси, направленной вектором ( x , y , 0) на угол .
Таким же образом гиперсферическое пространство 3D-вращений может быть параметризовано тремя углами ( углы Эйлера ), но любая такая параметризация вырождена в некоторых точках гиперсферы, что приводит к проблеме карданного замка . Мы можем избежать этого , используя четыре евклидовы координаты w , x , y , z , причем w2 + x2 + y2 + z2 = 1. Точка ( w , x , y , z ) представляет собой вращение вокруг оси , направленной вектором ( x , y , z ), на угол
Объяснение свойств кватернионов с помощью вращений
Некоммутативность
Умножение кватернионов некоммутативно . Этот факт объясняет, как формула p ↦ q p q −1 вообще может работать, имея q q −1 = 1 по определению. Поскольку умножение единичных кватернионов соответствует композиции трехмерных вращений, это свойство можно сделать интуитивно понятным, показав, что трехмерные вращения в общем случае некоммутативны.
Рисунок справа иллюстрирует это с игральными костями. Используйте правую руку, чтобы создать пару поворотов на 90 градусов. Оба кубика изначально настроены так, как показано в верхнем левом углу (с 1 точкой на верхней грани.) Путь A начинается с вращения вокруг оси –y (используя правило правой руки .), за которым следует вращение вокруг оси +z , в результате чего получается конфигурация, показанная в нижнем левом углу (5 точек на верхней грани.) Путь B меняет порядок операций, в результате чего получается 3 точки наверху.
Если у вас нет игральных костей, положите две книги рядом друг с другом. Поверните одну из них на 90 градусов по часовой стрелке вокруг оси z , затем переверните ее на 180 градусов вокруг оси x . Возьмите другую книгу, переверните ее сначала на 180° вокруг оси x , а затем на 90° по часовой стрелке вокруг оси z . Две книги не окажутся параллельными. Это показывает, что, в общем случае, композиция двух различных вращений вокруг двух различных пространственных осей не будет коммутировать.
Ориентация
Вектор векторного произведения , используемый для определения представления оси-угла, действительно придает ориентацию («рукость») пространству: в трехмерном векторном пространстве три вектора в уравнении a × b = c всегда будут образовывать правосторонний набор (или левосторонний набор, в зависимости от того, как определено векторное произведение), тем самым фиксируя ориентацию в векторном пространстве. В качестве альтернативы зависимость от ориентации выражается в ссылке на такой , который задает вращение относительно аксиальных векторов . В кватернионном формализме выбор ориентации пространства соответствует порядку умножения: ij = k, но ji = − k . Если изменить ориентацию на обратную, то приведенная выше формула становится p ↦ q −1 p q , т. е. единица q заменяется сопряженным кватернионом — то же поведение, что и у аксиальных векторов.
Альтернативные конвенции
Сообщается [16] , что существование и постоянное использование альтернативной конвенции кватернионов в аэрокосмической отрасли и, в меньшей степени, в робототехнике влечет за собой значительные и постоянные издержки [ sic ]. Эта альтернативная конвенция предложена доктором медицины Шустером в [17] и отходит от традиции, заменив определение для умножения базисных элементов кватернионов таким образом, что согласно конвенции Шустера, тогда как определение Гамильтона . Эта конвенция также называется «конвенцией JPL» из-за ее использования в некоторых частях Лаборатории реактивного движения NASA .
Согласно соглашению Шустера, формула умножения двух кватернионов изменяется таким образом, что
Формула вращения вектора на кватернион изменяется следующим образом:
Чтобы определить изменения по правилу Шустера, обратите внимание, что знак перед векторным произведением изменился с плюса на минус.
Наконец, формула преобразования кватерниона в матрицу вращения изменяется следующим образом:
что в точности является транспонированной матрицей вращения, преобразованной по традиционному правилу.
Программные приложения по соглашению используются
В таблице ниже приложения сгруппированы по их соблюдению того или иного соглашения о кватернионах: [16]
Хотя использование любого из этих соглашений не влияет на возможности или корректность приложений, созданных таким образом, авторы [16] утверждают, что от соглашения Шустера следует отказаться, поскольку оно отходит от гораздо более старого соглашения об умножении кватернионов Гамильтона и, возможно, никогда не будет принято в областях математической или теоретической физики.
Сравнение с другими представлениями вращений
Преимущества кватернионов
Представление вращения в виде кватерниона (4 числа) более компактно, чем представление в виде ортогональной матрицы (9 чисел). Более того, для заданной оси и угла можно легко построить соответствующий кватернион, и наоборот, для заданного кватерниона можно легко считать ось и угол. Оба эти действия гораздо сложнее с матрицами или углами Эйлера .
В видеоиграх и других приложениях часто интересуются «плавными вращениями», то есть сцена должна вращаться медленно, а не за один шаг. Этого можно добиться, выбрав кривую , например, сферическую линейную интерполяцию в кватернионах, где одна конечная точка — это тождественное преобразование 1 (или какое-либо другое начальное вращение), а другая — предполагаемое конечное вращение. Это более проблематично с другими представлениями вращений.
При составлении нескольких вращений на компьютере ошибки округления обязательно накапливаются. Кватернион, который немного отклоняется, все еще представляет собой вращение после нормализации: матрица, которая немного отклоняется, может больше не быть ортогональной и ее сложнее преобразовать обратно в правильную ортогональную матрицу.
Кватернионы также избегают явления, называемого замком карданного подвеса , который может возникнуть, когда, например, в системах вращения тангаж/рыскание/крен , тангаж поворачивается на 90° вверх или вниз, так что рыскание и крен затем соответствуют одному и тому же движению, и степень свободы вращения теряется. Например, в аэрокосмической инерциальной навигационной системе на основе карданного подвеса это может иметь катастрофические последствия, если самолет находится в крутом пикировании или подъеме.
Преобразование в матричное представление и обратно
От кватерниона к ортогональной матрице
Ортогональная матрица , соответствующая повороту на единичный кватернион z = a + b i + c j + d k (при | z | = 1 ) при последующем умножении на вектор-столбец, задается выражением
Эта матрица вращения используется на векторе w как . Кватернионное представление этого вращения задается как:
где - сопряжение кватерниона , заданное формулой
Кроме того, умножение кватернионов определяется как (предполагая, что a и b являются кватернионами, как z выше):
где порядок a , b важен, поскольку векторное произведение двух векторов не является коммутативным.
Более эффективный расчет, в котором кватернион не нуждается в единичной нормализации, приводится как [20]
где определены следующие промежуточные величины:
От ортогональной матрицы к кватерниону
Необходимо соблюдать осторожность при преобразовании матрицы вращения в кватернион, поскольку несколько простых методов имеют тенденцию быть нестабильными, когда след (сумма диагональных элементов) матрицы вращения равен нулю или очень мал. Для стабильного метода преобразования ортогональной матрицы в кватернион см. Матрица вращения#Кватернион .
Подгонка кватернионов
В разделе выше описывалось, как восстановить кватернион q из матрицы вращения 3 × 3 Q. Предположим, однако, что у нас есть некоторая матрица Q , которая не является чистым вращением — например, из-за ошибок округления — и мы хотим найти кватернион q , который наиболее точно представляет Q. В этом случае мы строим симметричную матрицу 4 × 4
и найдите собственный вектор ( x , y , z , w ) , соответствующий наибольшему собственному значению (это значение будет равно 1, если и только если Q является чистым вращением). Полученный таким образом кватернион будет соответствовать вращению, ближайшему к исходной матрице Q [ сомнительно – обсудить ] . [21]
Сравнение производительности
В этом разделе обсуждаются последствия использования кватернионов по сравнению с другими методами (матрицами осей/углов или вращения) для выполнения вращений в 3D.
Результаты
Только три компонента кватерниона являются независимыми, поскольку вращение представлено единичным кватернионом. Для дальнейшего вычисления обычно требуются все четыре элемента, поэтому все вычисления понесут дополнительные расходы из-за восстановления четвертого компонента. Аналогично, угол-ось можно сохранить в трехкомпонентном векторе, умножив единичное направление на угол (или его функцию), но это приводит к дополнительным вычислительным затратам при использовании его для вычислений. Аналогично, матрица вращения требует ортогональных базисных векторов, поэтому в трехмерном пространстве третий вектор можно однозначно вычислить из первых двух векторов с помощью векторного произведения (хотя есть неоднозначность в знаке третьего вектора, если разрешены неправильные вращения ).
* Кватернионы могут быть неявно преобразованы в матрицу, подобную вращению (12 умножений и 12 сложений/вычитаний), что выравнивает стоимость вращения следующих векторов с помощью метода матрицы вращения.
Использованные методы
Существует три основных подхода к повороту вектора v → :
Вычислите матричное произведение матрицы вращения R размером 3 × 3 и исходной матрицы столбцов размером 3 × 1, представляющей v → . Для этого потребуется 3 × (3 умножения + 2 сложения) = 9 умножений и 6 сложений, что является наиболее эффективным методом вращения вектора.
Вращение может быть представлено кватернионом единичной длины q = ( w , r → ) со скалярной (действительной) частью w и векторной (мнимой) частью r → . Вращение может быть применено к трехмерному вектору v → с помощью формулы . Для оценки требуется всего 15 умножений и 15 сложений (или 18 умножений и 12 сложений, если множитель 2 выполняется с помощью умножения.) Эта формула, первоначально предполагавшаяся для использования с нотацией оси/угла (формула Родригеса), также может быть применена к нотации кватерниона. Это дает тот же результат, что и менее эффективная, но более компактная формула умножения кватерниона .
Используйте формулу угла/оси для преобразования угла/оси в матрицу вращения R , а затем умножьте на вектор, или, аналогично, используйте формулу для преобразования кватернионной нотации в матрицу вращения, а затем умножьте на вектор. Преобразование угла/оси в R требует 12 умножений, 2 вызовов функций (sin, cos) и 10 сложений/вычитаний; из пункта 1, вращение с использованием R добавляет еще 9 умножений и 6 сложений, что в общей сложности составляет 21 умножение, 16 сложений/вычитаний и 2 вызова функций (sin, cos). Преобразование кватерниона в R требует 12 умножений и 12 сложений/вычитаний; из пункта 1, вращение с использованием R добавляет еще 9 умножений и 6 сложений, что в общей сложности составляет 21 умножение и 18 сложений/вычитаний.
Пары единичных кватернионов как вращения в 4D пространстве
Пара единичных кватернионов z l и z r может представлять любое вращение в 4D пространстве . Учитывая четырехмерный вектор v → , и предполагая, что это кватернион, мы можем вращать вектор v → следующим образом:
Пара матриц представляет собой поворот . Обратите внимание, что поскольку , то две матрицы должны коммутировать. Следовательно, существуют две коммутирующие подгруппы группы четырехмерных поворотов. Произвольные четырехмерные повороты имеют 6 степеней свободы; каждая матрица представляет 3 из этих 6 степеней свободы.
Поскольку генераторы четырехмерных вращений могут быть представлены парами кватернионов (как показано ниже), все четырехмерные вращения также могут быть представлены.
^ Shoemake, Ken (1985). «Анимация вращения с помощью кватернионных кривых» (PDF) . Компьютерная графика . 19 (3): 245–254. doi :10.1145/325165.325242.Представлено на SIGGRAPH '85.
^ Дж. М. Маккарти, 1990, Введение в теоретическую кинематику, MIT Press
^ Амнон Кац (1996) Вычислительная динамика жестких транспортных средств , Krieger Publishing Co. ISBN 978-1575240169
^ JB Kuipers (1999) Кватернионы и последовательности вращения: учебник с приложениями к орбитам, аэрокосмической отрасли и виртуальной реальности , Princeton University Press ISBN 978-0-691-10298-6
^ Карстен Кунце, Хельмут Шебен (ноябрь 2004 г.). «Распределение Бингама кватернионов и его сферическое преобразование Радона в текстурном анализе». Математическая геология . 36 (8): 917–943. doi :10.1023/B:MATG.0000048799.56445.59. S2CID 55009081.
^ Евклидова и неевклидова геометрия. Патрик Дж. Райан, Cambridge University Press, Кембридж, 1987.
^ IL Kantor. Гиперкомплексные числа, Springer-Verlag, Нью-Йорк, 1989.
^ Эндрю Дж. Хансон. Визуализация кватернионов, Morgan Kaufmann Publishers, Амстердам, 2006.
^ Дж. Х. Конвей и Д. А. Смит. О кватернионах и октонионах, AK Peters, Natick, MA, 2003.
^ "comp.graphics.algorithms FAQ" . Получено 2 июля 2017 г. .
^ Родригес, О. (1840), Des lois géométriques qui régissent les déplacements d'un système Solide dans l'espace, et lavariation des coordonnées provenant de ses déplacements considérés qui peuvent les produire, Journal de Mathématiques Pures и др. Аппликации Лиувилля 5, 380–440.
^ Ли, Бёнг-Ук (1991), «Дифференциация с помощью кватернионов, Приложение B» (PDF) , Стереосопоставление ориентиров черепа (диссертация доктора философии), Стэнфордский университет, стр. 57–58
^ Альтманн, Саймон Л. (1989). «Гамильтон, Родригес и скандал с кватернионом». Mathematics Magazine . 62 (5): 306. doi :10.2307/2689481. JSTOR 2689481.
^ Саймон Л. Альтман (1986) Вращения, кватернионы и двойные группы , Dover Publications (см. особенно гл. 12).
^ abc Sommer, H. (2018), «Почему и как избегать перевернутого умножения кватернионов», Aerospace , 5 (3): 72, arXiv : 1801.07478 , Bibcode : 2018Aeros...5...72S, doi : 10.3390/aerospace5030072 , ISSN 2226-4310
^ Шустер, МД (1993), «Обзор представлений об отношении», Журнал астронавтических наук , 41 (4): 439–517, Bibcode : 1993JAnSc..41..439S, ISSN 0021-9142
^ "MATLAB Aerospace Toolbox quatrotate".
^ MATLAB Aerospace Toolbox использует соглашение об умножении Гамильтона, однако, поскольку оно применяет *пассивные*, а не *активные* вращения, перечисленные кватернионы фактически являются активными вращениями, использующими соглашение Шустера. [18]
^ Алан Уотт и Марк Уотт (1992) Продвинутые методы анимации и рендеринга: теория и практика , ACM Press ISBN 978-0201544121
^ Bar-Itzhack, Itzhack Y. (ноябрь–декабрь 2000 г.), «Новый метод извлечения кватерниона из матрицы вращения», Journal of Guidance, Control and Dynamics , 23 (6): 1085–1087, Bibcode : 2000JGCD...23.1085B, doi : 10.2514/2.4654, ISSN 0731-5090
^ Эберли, Д., Представления о вращении и проблемы производительности
^ "Bitbucket". bitbucket.org .
Дальнейшее чтение
Грубин, Карл (1970). «Вывод схемы кватерниона через ось Эйлера и угол». Журнал космических аппаратов и ракет . 7 (10): 1261–1263. Bibcode : 1970JSpRo...7.1261G. doi : 10.2514/3.30149.
Battey-Pratt, EP; Racey, TJ (1980). "Геометрическая модель фундаментальных частиц". International Journal of Theoretical Physics . 19 (6): 437–475. Bibcode : 1980IJTP...19..437B. doi : 10.1007/BF00671608. S2CID 120642923.
Arribas, M.; Elipe, A.; Palacios, M. (2006). «Кватернионы и вращения твердого тела». Celest. Mech. Dyn. Astron . 96 (3–4): 239–251. Bibcode :2006CeMDA..96..239A. doi :10.1007/s10569-006-9037-6. S2CID 123591599.
Внешние ссылки и ресурсы
Шумейк, Кен. "Кватернионы" (PDF) . Архивировано (PDF) из оригинала 2020-05-03.
«Простой тип кватерниона и операции в более чем семидесяти пяти языках программирования».на Розеттском кодексе
Харт, Джон К. «Демонстратор кватерниона».
Дам, Эйк Б.; Кох, Мартин; Лиллхольм, Мартин (1998). «Кватернионы, интерполяция и анимация» (PDF) .
Леандра, Виччи (2001). «Кватернионы и вращения в трехмерном пространстве: алгебра и ее геометрическая интерпретация» (PDF) .
Хорн, Бертольд КП (2001). «Некоторые заметки о единичных кватернионах и вращении» (PDF) .
Ли, Бёнг-Ук (1991). Единичное кватернионное представление вращения - Приложение A, Дифференцирование с кватернионами - Приложение B (PDF) (диссертация). Стэнфордский университет.
Вэнс, Род. "Некоторые примеры связанных групп Ли". Архивировано из оригинала 2018-12-15.