Кватернионы и пространственное вращение - Quaternions and spatial rotation
Единица измерения кватернионы, также известный как версоры, обеспечить удобный математический обозначение для представления пространства ориентации и вращения объектов в трех измерениях. В сравнении с Углы Эйлера их проще сочинять и избежать проблемы карданный замок. В сравнении с матрицы вращения они компактнее, больше численно стабильный, и более эффективно. Кватернионы находят применение в компьютерная графика,[1] компьютерное зрение, робототехника,[2] навигация, молекулярная динамика, динамика полета,[3] орбитальная механика из спутники[4] и кристаллографическая текстура анализ.[5]
Когда используется для представления вращения, кватернионы единиц также называются кватернионы вращения поскольку они представляют Группа вращения 3D. Когда используется для обозначения ориентация (Вращение по отношению к эталонной системе координат), они называются ориентационные кватернионы или кватернионы отношения. Уравнение пространственного вращения можно резюмировать для радианы относительно единичной оси как кватернион где и .
Вступление
Кватернионы
В сложные числа можно определить, введя абстрактный символ я которое удовлетворяет обычным правилам алгебры и, кроме того, правилу я2 = −1. Этого достаточно, чтобы воспроизвести все правила арифметики комплексных чисел: например:
Таким же образом можно определить кватернионы, введя абстрактные символы я, j, k которые удовлетворяют правилам я2 = j2 = k2 = я j k = −1 и обычные алгебраические правила Кроме коммутативный закон умножения (знакомый пример такого некоммутативного умножения матричное умножение ). Из этого следуют все правила кватернионной арифметики, такие как правила умножения кватернионных базисных элементов. Используя эти правила, можно показать, что:
Мнимая часть кватерниона ведет себя как вектор в трехмерном векторном пространстве, а действительная часть а ведет себя как скаляр в р. Когда кватернионы используются в геометрии, их удобнее определять как скаляр плюс вектор:
Некоторым может показаться странным добавить количество к вектор, поскольку они являются объектами самой разной природы, или умножать два вектора вместе, поскольку эта операция обычно не определена. Однако, если вспомнить, что это просто обозначение действительной и мнимой частей кватерниона, это становится более законным. Другими словами, правильное рассуждение - добавление двух кватернионов, одного с нулевой векторной / мнимой частью, а другого с нулевой скалярной / действительной частью:
Мы можем выразить умножение кватернионов на современном языке векторов пересекать и точечные продукты (которые на самом деле были вдохновлены кватернионами в первую очередь [6]). При умножении векторных / мнимых частей вместо правил я2 = j2 = k2 = ijk = −1 у нас есть правило умножения кватернионов:
куда:
- полученный кватернион,
- векторное векторное произведение (вектор),
- - векторное скалярное произведение (скаляр).
Кватернионное умножение некоммутативно (из-за перекрестного произведения, которое антикоммутирует), а скалярно-скалярное и скалярно-векторное умножения коммутируют. Из этих правил сразу следует, что (смотрите подробности ):
(Левая и правая) мультипликативная обратная или обратная величина ненулевого кватерниона задается отношением сопряженного к норме (смотрите подробности ):
что можно проверить прямым расчетом.
Тождество вращения кватернионов
Позволять - единичный вектор (ось вращения) и пусть . Наша цель показать, что
дает вектор повернут на угол вокруг оси . Расширяясь, мы имеем
где и компоненты v→ перпендикулярно и параллельно ты→ соответственно. Это формула вращения к вокруг ты→ ось.
Использование кватерниона в качестве вращения
В трехмерном пространстве, согласно Теорема Эйлера вращения, любое вращение или последовательность поворотов твердого тела или системы координат вокруг фиксированной точки эквивалентны одному повороту на заданный угол. вокруг фиксированной оси (называемой Ось Эйлера), который проходит через неподвижную точку. Ось Эйлера обычно представлена единичный вектор ты→. Следовательно, любое вращение в трех измерениях можно представить как комбинацию вектораты→ и скаляр . Кватернионы дают простой способ кодировать это ось-угол представление в четыре числа, и может использоваться для применения соответствующего поворота к вектор положения, представляющий собой точка относительно происхождение в р3.
А Евклидов вектор такие как (2, 3, 4) или (аИкс, ау, аz) можно переписать как 2 я + 3 j + 4 k или аИкс я + ау j + аz k, где я, j, k - единичные векторы, представляющие три Декартовы оси. Поворот на угол вокруг оси, определяемой единичным вектором
может быть представлен кватернионом. Это можно сделать с помощью расширение из Формула Эйлера:
Можно показать, что желаемое вращение можно применить к обычному вектору в трехмерном пространстве, рассматриваемом как кватернион с реальной координатой, равной нулю, путем вычисления спряжение изп кq:
с использованием Гамильтон продукт, где п′ = (пИкс′, пу′, пz′) - новый вектор положения точки после поворота. В программной реализации это достигается путем построения кватерниона, векторная часть которого равна п и действительная часть равна нулю, а затем выполняется умножение кватернионов. Векторная часть полученного кватерниона и есть искомый вектор п′.
Математически эта операция несет в себе набор всех "чистых" кватернионов п (те, у которых действительная часть равна нулю) - которые составляют трехмерное пространство среди кватернионов - в себя, путем желаемого вращения вокруг оси ты, на угол θ. (Каждый реальный кватернион переносится в себя этой операцией. Но для целей вращения в трехмерном пространстве мы игнорируем реальные кватернионы.)
Вращение происходит по часовой стрелке, если наша линия взгляда указывает в том же направлении, что и ты→.
В этом случае, q это кватернион единиц и
Отсюда следует, что сопряжение произведением двух кватернионов есть композиция сопряжений этими кватернионами: Если п и q - единичные кватернионы, то вращение (сопряжение) наpq является
- ,
что то же самое, что вращение (сопряжение) наq а затемп. Скалярная составляющая результата обязательно равна нулю.
Кватернион, обратный вращению, - это противоположное вращение, поскольку . Квадрат поворота кватерниона - это поворот вокруг той же оси на удвоенный угол. В более общем смысле qп вращениеп умноженный на угол вокруг той же оси, что и q. Это может быть распространено на произвольные реальные п, позволяющий плавно интерполировать пространственные ориентации; видеть Slerp.
Два кватерниона вращения можно объединить в один эквивалентный кватернион соотношением:
в котором q′ соответствует вращению q1 с последующим вращением q2. (Обратите внимание, что умножение кватернионов не коммутативный.) Таким образом, произвольное количество поворотов можно составить вместе, а затем применить как одно вращение.
пример
Операция сопряжения
Конъюгирование п к q относится к операции п ↦ qpq−1.
Рассмотрим вращение ж вокруг оси , с углом поворота 120 °, или 2π/3 радианы.
Длина v→ является √3, половинный угол равен π/3 (60 °) с косинус 1/2, (cos 60 ° = 0,5) и синус √3/2, (sin 60 ° ≈ 0,866). Таким образом, мы имеем дело со спряжением единичным кватернионом
Если ж - функция вращения,
Можно доказать, что обращение единичного кватерниона получается просто меняя знак его мнимых компонентов. Как следствие,
и
Это можно упростить, используя обычные правила кватернионной арифметики, чтобы
Как и ожидалось, поворот соответствует сохранению куб фиксируется в одной точке и поворачивает его на 120 ° по длинной диагонали через фиксированную точку (обратите внимание на то, как переставляется циклически ).
Кватернионная матрица вращения
Кватернионное вращение (с участием ) можно алгебраически преобразовать в поворот матрицы , где R - матрица вращения предоставлено:[7]
Здесь и если q - единичный кватернион,
Это можно получить, используя векторное исчисление и линейная алгебра если мы выражаем и так как скалярная и векторная части и воспользуемся формулой для операции умножения в уравнении . Если мы напишем так как , так как и так как , где , наше уравнение превращается в . Используя формулу умножения двух кватернионов, которые выражаются в виде скалярных и векторных частей,
это уравнение можно переписать как
где обозначает внешний продукт, это единичная матрица и матрица преобразования, которая при умножении слева на вектор дает перекрестное произведение .
С , мы можем идентифицировать так как , что при раскрытии должно привести к выражению, записанному в матричной форме выше.
Восстановление представления ось-угол
Выражение вращает любой вектор кватернион вокруг оси, заданной вектором под углом , где и зависит от кватерниона .
и можно найти из следующих уравнений:
где это арктангенс с двумя аргументами. Следует соблюдать осторожность, когда кватернион приближается к скаляр, поскольку из-за вырождение ось вращения идентичности четко не определена.
Композиция пространственных поворотов
Преимущество кватернионной формулы композиции двух вращений RB и RА в том, что он дает непосредственно ось вращения и угол поворота композита RC= RBрА.
Пусть кватернион, связанный с пространственным вращением R, построен из его ось вращения S с углом поворота φ вокруг этой оси. Соответствующий кватернион определяется выражением
Тогда композиция вращения RB с RА есть вращение RC= RBрА с осью вращения и углом, определяемым произведением кватернионов
то есть
Разверните этот продукт, чтобы получить
Разделите обе части этого уравнения на единицу, которая является закон косинусов на сфере,
и вычислить
Это формула Родригеса для оси составного вращения, определяемой через оси двух вращений. Он вывел эту формулу в 1840 году (см. Стр. 408).[8]
Три оси вращения А, B, и C образуют сферический треугольник, а двугранные углы между плоскостями, образованными сторонами этого треугольника, определяются углами поворота. Гамильтон[9] представили компонентную форму этих уравнений, показывающую, что произведение кватернионов вычисляет третью вершину сферического треугольника из двух заданных вершин и связанных с ними длин дуги, что также определяет алгебру для точек в Эллиптическая геометрия.
Нормализованная ось вращения с удалением из развернутого продукта оставляет вектор, который является осью вращения, умноженный на некоторую постоянную величину. Следует соблюдать осторожность, когда является или где вектор близок .
наконец, нормализуя ось вращения:.
Дифференциация по кватерниону вращения
Повернутый кватернион p '= q p q−1 необходимо дифференцировать относительно вращающегося кватерниона q, когда вращение оценивается с помощью численной оптимизации. Оценка угла поворота является важной процедурой при регистрации 3D-объекта или калибровке камеры. Производную можно представить с помощью Матричное исчисление обозначение.
Вывод можно найти в.[10]
Операции вращения кватернионов
Очень формальное объяснение свойств, используемых в этом разделе, дает Альтман.[11]
Гиперсфера вращений
Визуализация пространства вращений
Кватернионы единиц представляют собой группа евклидова вращения в три измерения очень просто. Соответствие между вращениями и кватернионами можно понять, сначала визуализировав само пространство вращений.
Чтобы визуализировать пространство вращений, можно рассмотреть более простой случай. Любое вращение в трех измерениях можно описать вращением некоторых угол о некоторых ось; для наших целей мы будем использовать ось вектор установить руки для нашего угла. Рассмотрим частный случай, когда ось вращения лежит в ху самолет. Затем мы можем указать ось одного из этих вращений точкой на окружности, через которую пересекает вектор, и мы можем выбрать радиус круга, чтобы обозначить угол поворота.
Точно так же вращение, ось вращения которого лежит в ху плоскость можно описать как точку на сфере исправлено радиус в три Габаритные размеры. Начиная с северного полюса сферы в трехмерном пространстве, мы определяем точку на северном полюсе как единичный поворот (поворот на нулевой угол). Как и в случае с единичным вращением, ось вращения не определена, и угол поворота (ноль) не имеет значения. Вращение с очень малым углом поворота может быть задано срезом сферы, параллельным ху самолет и очень близко к северному полюсу. Круг, определяемый этим срезом, будет очень маленьким, что соответствует небольшому углу поворота. По мере увеличения углов поворота срез движется в отрицательном направлении. z направлении, и круги становятся больше, пока не будет достигнут экватор сферы, что будет соответствовать углу поворота 180 градусов. При продвижении на юг радиусы кругов становятся меньше (что соответствует абсолютному значению угла поворота, рассматриваемого как отрицательное число). Наконец, когда достигается южный полюс, круги снова сжимаются до вращения идентичности, которое также указывается как точка на южном полюсе.
Обратите внимание, что с помощью этой визуализации можно увидеть ряд характеристик таких поворотов и их представлений. Пространство поворотов непрерывно, каждое вращение имеет окрестность вращений, которые почти одинаковы, и эта окрестность становится плоской по мере уменьшения окрестности. Кроме того, каждый поворот фактически представлен двумя противоположными точками на сфере, которые находятся на противоположных концах линии, проходящей через центр сферы. Это отражает тот факт, что каждое вращение может быть представлено как вращение вокруг некоторой оси или, что эквивалентно, как отрицательное вращение вокруг оси, указывающей в противоположном направлении (так называемый двойная крышка ). «Широта» круга, представляющего определенный угол поворота, будет составлять половину угла, представленного этим вращением, поскольку при перемещении точки с северного полюса на южный, широта изменяется от нуля до 180 градусов, а угол поворота колеблется от 0 до 360 градусов. («долгота» точки тогда представляет конкретную ось вращения.) Обратите внимание, однако, что этот набор вращений не замыкается при композиции. Два последовательных поворота с осями в ху плоскости не обязательно будет давать вращение, ось которого лежит в ху плоскости, и поэтому не может быть представлен как точка на сфере. Этого не будет с обычным вращением в 3-м пространстве, в котором вращения действительно образуют замкнутое множество при композиции.
Эта визуализация может быть расширена до обычного вращения в трехмерном пространстве. Тождественное вращение - это точка, а небольшой угол поворота вокруг некоторой оси можно представить как точку на сфере с малым радиусом. По мере увеличения угла поворота сфера увеличивается, пока угол поворота не достигнет 180 градусов, после чего сфера начинает сжиматься, становясь точкой, когда угол приближается к 360 градусам (или нулю градусов от отрицательного направления). Этот набор расширяющихся и сжимающихся сфер представляет собой гиперсфера в четырехмерном пространстве (3-сфера). Как и в более простом примере выше, каждому вращению, представленному в виде точки на гиперсфере, соответствует его противоположная точка на этой гиперсфере. «Широта» на гиперсфере будет составлять половину соответствующего угла поворота, и окрестность любой точки станет «более плоской» (т.е. будет представлена трехмерным евклидовым пространством точек) по мере того, как окрестность сжимается. Этому поведению соответствует набор единичных кватернионов: общий кватернион представляет точку в четырехмерном пространстве, но ограничение его единичной величины дает трехмерное пространство, эквивалентное поверхности гиперсферы. Величина единичного кватерниона будет равна единице, что соответствует гиперсфере единичного радиуса. Векторная часть единичного кватерниона представляет собой радиус 2-сферы, соответствующей оси вращения, а ее величина - косинус половины угла поворота. Каждое вращение представлено двумя единичными кватернионами противоположного знака, и, как и в пространстве вращений в трех измерениях, произведение кватернионов двух единичных кватернионов даст единичный кватернион. Кроме того, пространство единичных кватернионов является «плоским» в любой бесконечно малой окрестности данного единичного кватерниона.
Параметризация пространства поворотов
Мы можем параметризовать поверхность сферы двумя координатами, такими как широта и долгота. Но широта и долгота - это плохо (выродиться ) на северном и южном полюсах, хотя полюса по существу не отличаются от любых других точек на сфере. На полюсах (широты + 90 ° и −90 °) долгота теряет смысл.
Можно показать, что никакая двухпараметрическая система координат не может избежать такого вырождения. Мы можем избежать таких проблем, вложив сферу в трехмерное пространство и параметризовав ее тремя декартовыми координатами. (ш, Икс, у), поместив северный полюс в (ш, Икс, у) = (1, 0, 0), южный полюс в (ш, Икс, у) = (−1, 0, 0), а экватор на ш = 0, Икс2 + у2 = 1. Точки на сфере удовлетворяют ограничению ш2 + Икс2 + у2 = 1, так что у нас осталось всего два степени свободы хотя есть три координаты. Точка (ш, Икс, у) на сфере представляет собой вращение в обычном пространстве вокруг горизонтальной оси, направленной вектором (Икс, у, 0) под углом .
Таким же образом гиперсферическое пространство трехмерных вращений можно параметризовать тремя углами (Углы Эйлера ), но любая такая параметризация вырождается в некоторых точках гиперсферы, что приводит к проблеме карданный замок. Этого можно избежать, используя четыре евклидовых координаты ш, Икс, у, z, с участием ш2 + Икс2 + у2 + z2 = 1. Смысл (ш, Икс, у, z) представляет собой вращение вокруг оси, направленной вектором (Икс, у, z) под углом
Объяснение свойств кватернионов с поворотами
Некоммутативность
Умножение кватернионов есть некоммутативный. Этот факт объясняет, как п ↦ q p q−1 формула вообще может работать, имея q q−1 = 1 по определению. Поскольку умножение единичных кватернионов соответствует композиции трехмерных вращений, это свойство можно сделать интуитивно понятным, показав, что трехмерные повороты в целом не коммутативны.
Поставьте две книги рядом друг с другом. Поверните одну из них на 90 градусов по часовой стрелке вокруг z оси, затем поверните ее на 180 градусов вокруг Икс ось. Возьмите вторую книгу, переверните ее на 180 °. Икс ось сначала и 90 ° по часовой стрелке вокруг z позже. Две книги не совпадают. Это показывает, что, в общем, композиция двух разных вращений вокруг двух разных пространственных осей не будет коммутировать.
Ориентация
В векторное произведение, используемый для определения представления оси и угла, действительно дает ориентация («ручность») в пространство: в трехмерном векторном пространстве три вектора в уравнении а × б = c всегда будет формировать правосторонний набор (или левосторонний, в зависимости от того, как определяется перекрестное произведение), тем самым фиксируя ориентацию в векторном пространстве. В качестве альтернативы зависимость от ориентации выражается в обращении к таким ты→ который определяет вращение относительно аксиальные векторы. В кватернионном формализме выбор ориентации пространства соответствует порядку умножения: ij = k но джи = −k. Если изменить ориентацию, то приведенная выше формула станет п ↦ q−1 p q, т.е. единица q заменяется на сопряженный кватернион - такое же поведение, как и у аксиальных векторов.
Альтернативные соглашения
Об этом сообщается в [12] что существование и продолжающееся использование альтернативной конвенции кватернионов в аэрокосмической отрасли и, в меньшей степени, в сообществе робототехники вызывает значительные и текущие расходы [sic ]. Это альтернативное соглашение предложено Шустером M.D. в [13], и отходит от традиции, изменяя определение умножения кватернионных базисных элементов таким образом, что согласно соглашению Шустера, тогда как определение Гамильтона .
Согласно соглашению Шустера, формула умножения двух кватернионов изменяется так, что
Формула вращения вектора кватернионом изменена на
Чтобы определить изменения в соответствии с соглашением Шустера, обратите внимание, что знак перед перекрестным произведением перевернут с плюса на минус.
Наконец, формула преобразования кватерниона в матрицу вращения изменяется на
что в точности представляет собой транспонирование матрицы вращения, преобразованной по традиционному соглашению.
В приведенной ниже таблице приложения сгруппированы по их приверженности какому-либо кватернионному соглашению.
Используемые программные приложения по соглашению
Соглашение об умножении Гамильтона | Соглашение об умножении Шустера |
---|---|
| Microsoft DirectX Математическая библиотека |
Хотя использование любого из соглашений не влияет на возможности или правильность созданных таким образом приложений, авторы [14] утверждал, что от соглашения Шустера следует отказаться, поскольку оно отклоняется от гораздо более старого соглашения об умножении кватернионов Гамильтона и может никогда не быть принято в областях математической или теоретической физики.
Сравнение с другими представлениями поворотов
Преимущества кватернионов
Представление вращения в виде кватерниона (4 числа) более компактно, чем представление в виде ортогональная матрица (9 номеров). Более того, для данной оси и угла можно легко построить соответствующий кватернион, и, наоборот, для данного кватерниона можно легко считать ось и угол. И то, и другое намного сложнее с матрицами или Углы Эйлера.
В видеоигры и в других приложениях часто интересуют «плавные вращения», означающие, что сцена должна вращаться медленно, а не за один шаг. Этого можно добиться, выбрав изгиб такой как сферическая линейная интерполяция в кватернионах, причем одна конечная точка является преобразованием идентичности 1 (или некоторым другим начальным вращением), а другая - предполагаемым окончательным вращением. Это более проблематично с другими представлениями вращения.
При составлении нескольких поворотов на компьютере обязательно накапливаются ошибки округления. Кватернион, который немного отклонен, все еще представляет собой поворот после нормализации: матрица, которая немного отклонена, может не быть ортогональный больше и труднее преобразовать обратно в правильную ортогональную матрицу.
Кватернионы также избегают явления, называемого карданный замок что может произойти, когда, например, в системы вращения по тангажу / рысканью / крену, тангаж поворачивается на 90 ° вверх или вниз, так что рыскание и крен соответствуют одному и тому же движению, и степень свободы вращения теряется. В подвес на базе авиакосмической отрасли инерциальная навигационная система например, это может иметь катастрофические результаты, если самолет находится на крутом пикировании или подъеме.
Преобразование в матричное представление и обратно
От кватерниона к ортогональной матрице
В ортогональная матрица соответствующий вращению единичным кватернионом z = а + б я + c j + d k (с участием | z | = 1) при последующем умножении на вектор-столбец
Эта матрица вращения используется для вектора ш так как . Кватернионное представление этого вращения определяется следующим образом:
где является конъюгатом кватерниона , данный
Кроме того, умножение кватернионов определяется как (при условии, что a и b являются кватернионами, как z выше):
где порядок a, b важен, поскольку перекрестное произведение двух векторов не коммутативно.
От ортогональной матрицы к кватерниону
При преобразовании матрицы вращения в кватернион необходимо соблюдать осторожность, поскольку некоторые простые методы имеют тенденцию быть нестабильными, когда след (сумма диагональных элементов) матрицы вращения равна нулю или очень мала. Чтобы узнать о стабильном методе преобразования ортогональной матрицы в кватернион, см. Quaternion подраздел Матрица вращения статья.
Установка кватернионов
В предыдущем разделе описано, как восстановить кватернион. q из 3×3 матрица вращения Q. Предположим, однако, что у нас есть некоторая матрица Q это не чистое вращение - из-за ошибки округления, например - и мы хотим найти кватернион q что наиболее точно представляет Q. В этом случае мы строим симметричный 4×4 матрица
и найти собственный вектор (Икс, у, z, ш) соответствует наибольшему собственному значению (это значение будет 1 тогда и только тогда, когда Q чистое вращение). Полученный таким образом кватернион будет соответствовать вращению, наиболее близкому к исходной матрице Q[сомнительный ].[15]
Сравнение производительности
В этом разделе обсуждается влияние на производительность использования кватернионов по сравнению с другими методами (ось / угол или матрицы вращения) для выполнения вращений в 3D.
Результаты
Метод | Место хранения |
---|---|
Матрица вращения | 9 |
Кватернион | 3 или 4 (см. Ниже) |
Угол / ось | 3 или 4 (см. Ниже) |
Только три из компонентов кватерниона независимы, поскольку вращение представлено единичным кватернионом. Для дальнейших расчетов обычно требуются все четыре элемента, поэтому все расчеты потребуют дополнительных затрат на восстановление четвертого компонента. Точно так же угол / ось можно сохранить в трехкомпонентном векторе путем умножения единичного направления на угол (или его функцию), но это требует дополнительных вычислительных затрат при использовании его для вычислений.
Метод | # умножается | # сложить / вычесть | Всего операций |
---|---|---|---|
Матрицы вращения | 27 | 18 | 45 |
Кватернионы | 16 | 12 | 28 |
Метод | # умножается | # сложить / вычесть | # sin / cos | Всего операций | |
---|---|---|---|---|---|
Матрица вращения | 9 | 6 | 0 | 15 | |
Кватернионы * | Без промежуточной матрицы | 15 | 15 | 0 | 30 |
Кватернионы * | С промежуточной матрицей | 21 | 18 | 0 | 39 |
Угол / ось | Без промежуточной матрицы | 18 | 13 | 2 | 30 + 3 |
Угол / ось | С промежуточной матрицей | 21 | 16 | 2 | 37 + 2 |
* Примечание: кватернионы могут быть неявно преобразованы в матрицу, подобную вращению (12 умножений и 12 сложений / вычитаний), которая выравнивает стоимость вращения следующих векторов с помощью метода матрицы вращения
Используемые методы
Есть три основных подхода к вращению вектора. v→:
- Вычислить матричное произведение 3 × 3 матрица вращения р и оригинал 3 × 1 столбец матрица, представляющая v→. Для этого требуется 3 × (3 умножения + 2 сложения) = 9 умножений и 6 сложений, что является наиболее эффективным методом поворота вектора.
- Вращение может быть представлено кватернионом единичной длины q = (ш, р→) со скалярной (действительной) частью ш и векторная (мнимая) часть р→. Вращение можно применить к трехмерному вектору. v→ по формуле . Для этого требуется всего 15 умножений и 15 сложений для вычисления (или 18 умножений и 12 сложений, если множитель 2 выполняется посредством умножения). Эта формула, изначально предполагавшаяся использовать с обозначением оси / угла (формула Родригеса), также может быть применяется к кватернионной нотации. Это дает тот же результат, что и менее эффективная, но более компактная формула умножения кватернионов .
- Использовать формула угла / оси преобразовать угол / ось в матрица вращения р затем умножьте на вектор или, аналогично, используйте формулу для преобразования кватернионной нотации в матрицу вращения, а затем умножьте на вектор. Преобразование угла / оси в р стоит 12 умножений, 2 вызова функций (sin, cos) и 10 сложений / вычитаний; из пункта 1, вращая с помощью р добавляет еще 9 умножений и 6 сложений, всего 21 умножение, 16 сложений / вычитаний и 2 вызова функций (sin, cos). Преобразование кватерниона в р стоит 12 умножений и 12 сложений / вычитаний; из пункта 1, вращая с помощью р добавляет еще 9 умножений и 6 сложений, всего 21 умножение и 18 сложений / вычитаний.
Метод | # умножается | # сложить / вычесть | # sin / cos | Всего операций | |
---|---|---|---|---|---|
Матрица вращения | 9п | 6п | 0 | 15п | |
Кватернионы * | Без промежуточной матрицы | 15п | 15п | 0 | 30п |
Кватернионы * | С промежуточной матрицей | 9п + 12 | 6п + 12 | 0 | 15п + 24 |
Угол / ось | Без промежуточной матрицы | 18п | 12п + 1 | 2 | 30п + 3 |
Угол / ось | С промежуточной матрицей | 9п + 12 | 6п + 10 | 2 | 15п + 24 |
Пары единичных кватернионов как вращения в четырехмерном пространстве
Пара единичных кватернионов zл и zр может представлять любой вращение в 4D пространстве. Учитывая четырехмерный вектор v→, и предполагая, что это кватернион, мы можем повернуть вектор v→ как это:
Пара матриц представляет собой поворот ℝ4. Обратите внимание, что поскольку , две матрицы должны коммутировать. Следовательно, есть две коммутирующие подгруппы множества четырехмерных вращений. Произвольные четырехмерные вращения имеют 6 степеней свободы, каждая матрица представляет 3 из этих 6 степеней свободы.
Поскольку генераторы четырехмерных вращений могут быть представлены парами кватернионов (как показано ниже), все четырехмерные вращения также могут быть представлены.
Смотрите также
- Механизм предотвращения скручивания
- Бинарная полиэдральная группа
- Бикватернион
- Графики на SO (3)
- Алгебры Клиффорда
- Преобразование между кватернионами и углами Эйлера
- Покрытие пространства
- Двойной кватернион
- Двойное комплексное число
- Эллиптическая геометрия
- Формализмы вращения в трех измерениях
- Вращение (математика)
- Спиновая группа
- Slerp, сферическая линейная интерполяция
- Олинде Родригес
- Уильям Роуэн Гамильтон
Рекомендации
- ^ Шумейк, Кен (1985). «Анимация вращения с помощью кватернионных кривых» (PDF). Компьютерная графика. 19 (3): 245–254. Дои:10.1145/325165.325242. Представлено на СИГГРАФ '85.
- ^ Дж. М. Маккарти, 1990 г., Введение в теоретическую кинематику, MIT Press
- ^ Амнон Кац (1996) Вычислительная динамика жестких транспортных средств, Krieger Publishing Co. ISBN 978-1575240169
- ^ Дж. Б. Кейперс (1999) Кватернионы и последовательности вращения: учебник по применению к орбитам, аэрокосмической отрасли и виртуальной реальности, Princeton University Press ISBN 978-0-691-10298-6
- ^ Карстен Кунце, Гельмут Шебен (ноябрь 2004 г.). «Распределение кватернионов Бингама и его сферическое преобразование радона в текстурном анализе». Математическая геология. 36 (8): 917–943. Дои:10.1023 / B: MATG.0000048799.56445.59. S2CID 55009081.
- ^ Альтманн, Саймон Л. (1989). «Гамильтон, Родригес и скандал с кватернионом». Математический журнал. 62 (5): 306. Дои:10.2307/2689481. JSTOR 2689481.
- ^ "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 la вариация координат, полученных от независимых от причин, вызывающих qui peuvent les produire, Journal de Mathématiques Appliquées de Liouville 5, 380–440.
- ^ Уильям Роуэн Гамильтон (С 1844 по 1850 годы) О кватернионах или новой системе воображаемых в алгебре, Философский журнал, ссылка на коллекцию Дэвида Р. Уилкинса на Тринити-колледж, Дублин
- ^ Ли, Бюнг-Ук (1991), «Дифференциация с кватернионами, Приложение B» (PDF), Кандидатская диссертация, Стерео сопоставление ориентиров черепа, Стэнфордский университет: 57–58
- ^ Саймон Л. Альтман (1986) Вращения, кватернионы и двойные группы, Dover Publications (см. Особенно гл. 12).
- ^ Соммер, Х. (2018), "Почему и как избежать перевернутого умножения кватернионов", Аэрокосмическая промышленность, 5 (3): 72, arXiv:1801.07478, Дои:10.3390 / Aerospace5030072, ISSN 2226-4310
- ^ Шустер, доктор медицины (1993), "Обзор представлений об установках", Журнал астронавтических наук, 41 (4): 439–517, Bibcode:1993JAnSc..41..439S, ISSN 0021-9142
- ^ Sommer.
- ^ Бар-Ицхак, Ицхак Ю. (ноябрь – декабрь 2000 г.), "Новый метод извлечения кватерниона из матрицы вращения", Журнал AIAA по руководству, контролю и динамике, 23 (6): 1085–1087, Bibcode:2000JGCD ... 23.1085B, Дои:10.2514/2.4654, ISSN 0731-5090
- ^ Эберли Д., Представления ротации и проблемы с производительностью
- ^ "Bitbucket". bitbucket.org.
- Грубин, Карл (1970). «Вывод схемы кватернионов через ось Эйлера и угол». Журнал космических аппаратов и ракет. 7 (10): 1261–1263. Bibcode:1970JSpRo ... 7.1261G. Дои:10.2514/3.30149.
- Battey-Pratt, E.P .; Рэйси, Т. Дж. (1980). «Геометрическая модель фундаментальных частиц». Международный журнал теоретической физики. 19 (6): 437–475. Bibcode:1980IJTP ... 19..437B. Дои:10.1007 / BF00671608. S2CID 120642923.
- Arribas, M .; Elipe, A .; Паласиос, М. (2006). «Кватернионы и вращения твердого тела». Селест. Мех. Дин. Astron. 96 (3–4): 239–251. Bibcode:2006CeMDA..96..239A. Дои:10.1007 / s10569-006-9037-6. S2CID 123591599.
Внешние ссылки и ресурсы
- Шумейк, Кен. "Кватернионы" (PDF).
- «Простой тип Quaternion и операции на более чем тридцати компьютерных языках». на Код Розетты
- Харт, Джон С. "Кватернион Демонстратор".
- Dam, Eik B .; Кох, Мартин; Лиллхольм, Мартин (1998). «Кватернионы, интерполяция и анимация» (PDF).
- Леандра, Виччи (2001). «Кватернионы и вращения в 3-м пространстве: алгебра и ее геометрическая интерпретация» (PDF).
- Хауэлл, Томас; Лафон, Жан-Клод (1975). «Сложность кватернионного продукта, TR75-245» (PDF). Корнелл Университет.
- Хорн, Бертольд К. (2001). «Некоторые замечания по кватернионам и вращению единиц» (PDF).
- Ли, Бюнг-Ук (1991). Единичное кватернионное представление вращения - Приложение A, Дифференциация с кватернионами - Приложение B (PDF) (Кандидатская диссертация). Стэндфордский Университет.
- Вэнс, Род. «Некоторые примеры связных групп Ли».
- «Визуальное представление вращения кватерниона».