Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Единичные кватернионы , известные как версоры , обеспечивают удобную математическую нотацию для представления пространственной ориентации и вращения элементов в трехмерном пространстве. В частности, они кодируют информацию о повороте оси на угол вокруг произвольной оси. Вращение и ориентация кватернионы применения в компьютерной графике , [1] компьютерное зрение , робототехника , [2] навигация , молекулярная динамика , динамика полета , [3] орбитальная механика из спутников[4] и кристаллографический текстурный анализ. [5]

При использовании для представления вращения единичные кватернионы также называются кватернионами вращения, поскольку они представляют группу трехмерного вращения . Когда используются для представления ориентации (поворот относительно опорной системы координат), они называются ориентациями кватернионов или отношение кватернионов . Пространственное вращение вокруг фиксированной точки в радианах вокруг единичной оси , обозначающей ось Эйлера, задается кватернионом , где и .

По сравнению с матрицами вращения кватернионы более компактны, эффективны и численно стабильны . По сравнению с углами Эйлера их проще составить и избежать проблемы блокировки кардана . Однако они не так интуитивно понятны и понятны, как углы Эйлера. И, в связи с периодическим характером из синуса и косинуса, углы поворота , отличающиеся именно естественный период будет закодированы в идентичные кватернионы и отводили углы будут ограничены (в радианах ).

Использование кватернионов в качестве вращения [ править ]

3D визуализация сферы и вращения вокруг оси Эйлера ( ) на угол

В трехмерном пространстве, согласно теореме Эйлера о вращении , любое вращение или последовательность поворотов твердого тела или системы координат вокруг фиксированной точки эквивалентно одиночному вращению на заданный угол вокруг фиксированной оси (называемой осью Эйлера ), которая проходит через фиксированную точку. Ось Эйлера обычно представлена единичным вектором u ( на рисунке). Следовательно, любое вращение в трех измерениях можно представить как комбинацию вектора u и скаляра .  

Кватернионы дают простой способ кодировать это представление ось-угол четырьмя числами и могут использоваться для применения соответствующего поворота к вектору положения , представляющему точку относительно начала координат в R 3 . Евклидовы векторы, такие как (2, 3, 4) или ( a x ,  a y ,  a z ), можно переписать как 2  i + 3  j + 4  k или a x i + a y j+ a z k , где i , j , k - единичные векторы, представляющие три декартовых оси (традиционно x , y , z ), а также подчиняются правилам умножения фундаментальных единиц кватерниона.

Следовательно, поворот угла вокруг оси, определяемой единичным вектором

может быть представлен кватернионом. Это можно сделать с помощью расширения по формуле Эйлера :

Можно показать [ дополнительное объяснение необходимости ] , что желаемое вращение может быть применены к обычному вектору в 3-мерном пространстве, рассматриваемый как кватернион с реальными координатами равно нуль, путем оценки конъюгации из  р от  д :

используя произведение Гамильтона , где p ′ = ( p x ′,  p y ′,  p z ′) - это новый вектор положения точки после поворота. В программной реализации сопряжение достигается путем построения кватерниона, векторная часть которого равна p, а действительная часть равна нулю, а затем выполнения кватернионного умножения. Векторная часть полученного кватерниона и есть искомый вектор p ' .

Математически эта операция переносит набор всех «чистых» кватернионов p (с действительной частью, равной нулю), составляющих трехмерное пространство среди кватернионов, в себя путем желаемого поворота вокруг оси u на угол θ. (Каждый реальный кватернион переносится в себя с помощью этой операции. Но для целей вращения в трехмерном пространстве мы игнорируем реальные кватернионы.)

Вращение происходит по часовой стрелке, если наша линия взгляда указывает в том же направлении, что и u .

В этом случае q - это единичный кватернион, а

Отсюда следует, что сопряжение произведением двух кватернионов является композицией сопряжений этими кватернионами: если p и q - единичные кватернионы, то вращение (сопряжение) на  pq есть

,

что то же самое, что вращение (сопряжение) на  q, а затем на  p . Скалярная составляющая результата обязательно равна нулю.

Кватернион, обратный вращению, - это противоположное вращение, так как . Квадрат поворота кватерниона - это поворот на удвоенный угол вокруг той же оси. В более общем смысле q n - это поворот  на угол в n раз относительно той же оси, что и q . Это может быть расширено до произвольного действительного n , обеспечивая плавную интерполяцию между пространственными ориентациями; см. Slerp .

Два кватерниона вращения можно объединить в один эквивалентный кватернион соотношением:

в котором q соответствует повороту q 1, за которым следует поворот q 2 . (Обратите внимание, что умножение кватернионов не является коммутативным .) Таким образом, произвольное количество поворотов может быть составлено вместе, а затем применено как одно вращение.

Пример операции спряжения [ править ]

Поворот на 120 ° вокруг первой диагонали циклически меняет местами i , j и k.

Сопряжение p с q относится к операции pqpq −1 .

Рассмотрим вращение f вокруг оси с углом поворота 120 °, или2 π/3 радианы .

pq p для q =1 + я + j + к/2на агрегате 3-сфера . Обратите внимание, что это одностороннее (а именно, левое ) умножение приводит к повороту кватернионов на 60 °.

Длина v равна 3 , половина угла равнаπ/3(60 °) с косинусом 1/2, ( cos 60 ° = 0,5 ) и синус 3/2, ( sin 60 ° ≈ 0,866 ). Таким образом, мы имеем дело со спряжением единичным кватернионом

Если f - функция вращения,

Можно доказать, что инверсия единичного кватерниона получается просто изменением знака его мнимой составляющей. Как следствие,

и

Это можно упростить, используя обычные правила кватернионной арифметики, чтобы

Как и ожидалось, вращение соответствует удержанию куба фиксированным в одной точке и повороту его на 120 ° по длинной диагонали через фиксированную точку (обратите внимание, как три оси меняются циклически ).

Кватернионная матрица вращения [ править ]

Поворот кватерниона (с ) можно алгебраически преобразовать в поворот матрицы , где - матрица вращения, заданная следующим образом: [6]

Here , и если д является единицей кватернионов, .

Это может быть получено с помощью векторного исчисления и линейной алгебры, если мы выразим и как скалярную и векторную части и воспользуемся формулой для операции умножения в уравнении . Если мы запишем as , as и as , where , наше уравнение превратится в . Используя формулу умножения двух кватернионов, которые выражаются в виде скалярных и векторных частей,

это уравнение можно переписать как

где обозначает внешнее произведение , является единичной матрицей и является матрицей преобразования, которая при умножении слева на вектор дает перекрестное произведение .

Поскольку мы можем идентифицировать as , что после расширения должно привести к выражению, записанному в матричной форме выше.

Восстановление представления ось-угол [ править ]

Выражение вращает любой векторный кватернион вокруг оси, заданной вектором , на угол , где и зависит от кватерниона .

и может быть найден из следующих уравнений:

где - арктангенс с двумя аргументами .

Следует проявлять осторожность, когда кватернион приближается к скаляру , поскольку из-за вырождения ось вращения идентичности не определена четко.

Композиция пространственных вращений [ править ]

Преимущество композиции кватернионов композиции двух вращений R B и R A является то , что она дает непосредственно на ось вращения и угол поворота составного R C = R B R A .

Пусть кватернион, связанный с пространственным вращением R , построен из его оси вращения S с углом поворота вокруг этой оси. Соответствующий кватернион задается формулой

Тогда композиция вращения R B с R A - это вращение R C = R B R A с осью вращения и углом, определяемым произведением кватернионов

то есть

Разверните этот продукт, чтобы получить

Разделите обе части этого уравнения на единицу, которая является законом косинусов на сфере ,

и вычислить

Это формула Родригеса для оси составного вращения, определенной в терминах осей двух вращений. Он вывел эту формулу в 1840 году (см. Стр. 408). [7]

Три оси вращения A , B и C образуют сферический треугольник, а двугранные углы между плоскостями, образованными сторонами этого треугольника, определяются углами поворота. Гамильтон [8] представил компонентную форму этих уравнений, показывающую, что произведение кватернионов вычисляет третью вершину сферического треугольника из двух заданных вершин и связанных с ними длин дуги, что также определяет алгебру для точек в эллиптической геометрии .

Нормализованная ось вращения, удаляя из развернутого продукта, оставляет вектор, который является осью вращения, умноженный на некоторую постоянную величину. Следует проявлять осторожность, когда он или где находится вектор .

наконец , нормализуя ось вращения: .

Дифференциация по кватерниону вращения [ править ]

Повернутый кватернион p '= q p q -1 необходимо дифференцировать по отношению к вращающемуся кватерниону q , когда вращение оценивается с помощью численной оптимизации. Оценка угла поворота является важной процедурой при регистрации 3D-объекта или калибровке камеры. Для унитарного q и чисто мнимого p , то есть для вращения в трехмерном пространстве, производные повернутого кватерниона могут быть представлены с использованием записи матричного исчисления как

Вывод можно найти в [9] .

Фон [ править ]

Кватернионы [ править ]

В комплексных числах могут быть определены путем введения абстрактного символа я , который удовлетворяет обычные правила алгебры и дополнительно правило , я 2 = -1 . Этого достаточно, чтобы воспроизвести все правила арифметики комплексных чисел: например:

Таким же образом кватернионы могут быть определены путем введения абстрактных символов I , J , K , которые удовлетворяют правила я 2 = J 2 = K 2 = I J K = -1 и обычные алгебраические правил , за исключением того, в коммутативном закон умножения (знакомый примера такого некоммутативного умножения есть умножение матриц ). Из этого следуют все правила кватернионной арифметики, такие как правила умножения кватернионных базисных элементов . Используя эти правила, можно показать, что:

Мнимая часть кватернионов ведут себя как вектор в трехмерном векторном пространстве , а действительная часть а ведет себя как скаляр в R . Когда кватернионы используются в геометрии, их удобнее определять как скаляр плюс вектор :

Некоторым может показаться странным добавлять число к вектору , поскольку это объекты очень разной природы, или умножать два вектора вместе, поскольку эта операция обычно не определена. Однако, если вспомнить, что это просто обозначение реальной и мнимой частей кватерниона, это становится более законным. Другими словами, правильным аргументом является добавление двух кватернионов, одного с нулевой векторной / мнимой частью, а другого с нулевой скалярной / действительной частью:

Мы можем выразить умножение кватернионов на современном языке векторных крестов и скалярных произведений (которые на самом деле изначально были вдохновлены кватернионами [10] ). При умножении векторных / мнимых частей вместо правил i 2 = j 2 = k 2 = ijk = −1 мы имеем правило умножения кватернионов:

куда:

  • полученный кватернион,
  • векторное произведение (вектор),
  • - векторное скалярное произведение (скаляр).

Кватернионное умножение некоммутативно (из-за перекрестного произведения, которое антикоммутирует ), в то время как скалярно-скалярное и скалярно-векторное умножения коммутируют. Из этих правил сразу следует, что ( см. Подробности ):

(Левая и правая) мультипликативная обратная или обратная величина ненулевого кватерниона задается отношением сопряженного к норме ( см. Подробности ):

что можно проверить прямым вычислением (обратите внимание на сходство с мультипликативным обратным комплексным числам ).

Идентификатор вращения [ править ]

Позвольте быть единичный вектор (ось вращения) и пусть . Наша цель - показать, что

дает вектор, повернутый на угол вокруг оси . Расширяя (и имея в виду это ), мы имеем

Используя тригонометрические тождества :

где и - компоненты v (перпендикулярные и параллельные u соответственно). Это формула вращения по всему ¯u оси.

Операции вращения кватернионов [ править ]

Очень формальное объяснение свойств, используемых в этом разделе, дает Альтман. [11]

Гиперсфера вращений [ править ]

Визуализация пространства вращений [ править ]

Единичные кватернионы очень просто представляют группу евклидовых вращений в трех измерениях . Соответствие между вращениями и кватернионами можно понять, сначала визуализировав само пространство вращений.

Два отдельных поворота, различающихся как углом, так и осью, в пространстве вращений. Здесь длина каждого вектора оси относится к соответствующей величине вращения вокруг этой оси.

Чтобы визуализировать пространство вращений, полезно рассмотреть более простой случай. Любое вращение в трех измерениях можно описать вращением на некоторый угол вокруг некоторой оси ; для наших целей мы будем использовать ось вектор установить рукость для нашего угла. Рассмотрим частный случай, когда ось вращения лежит в плоскости xy . Затем мы можем указать ось одного из этих вращений точкой на окружности, через которую пересекает вектор, и мы можем выбрать радиус окружности для обозначения угла поворота .

Точно так же вращение, ось вращения которого лежит в плоскости xy, можно описать как точку на сфере фиксированного радиуса в трех измерениях. Начиная с северного полюса сферы в трехмерном пространстве, мы указываем точку на северном полюсе как единичный поворот (поворот на нулевой угол). Как и в случае с единичным вращением, ось вращения не определена, и угол поворота (ноль) не имеет значения. Вращение с очень малым углом поворота может быть задано срезом сферы, параллельным оси xy.самолет и очень близко к северному полюсу. Круг, определяемый этим срезом, будет очень маленьким, что соответствует небольшому углу поворота. По мере того, как углы поворота становятся больше, срез перемещается в отрицательном направлении z , и круги становятся больше, пока не будет достигнут экватор сферы, что будет соответствовать углу поворота 180 градусов. При продвижении на юг радиусы кругов становятся меньше (что соответствует абсолютному значению угла поворота, рассматриваемого как отрицательное число). Наконец, когда достигается южный полюс, круги снова сжимаются до вращения идентичности, которое также указывается как точка на южном полюсе.

Обратите внимание, что с помощью этой визуализации можно увидеть ряд характеристик таких поворотов и их представлений. Пространство вращений непрерывно, каждое вращение имеет окрестность вращений, которые почти одинаковы, и эта окрестность становится плоской по мере того, как окрестность сокращается. Кроме того, каждое вращение фактически представлено двумя противоположными точками на сфере, которые находятся на противоположных концах линии, проходящей через центр сферы. Это отражает тот факт, что каждое вращение может быть представлено как вращение вокруг некоторой оси или, что то же самое, как отрицательное вращение вокруг оси, указывающей в противоположном направлении (так называемая двойная крышка). «Широта» круга, представляющего определенный угол поворота, будет составлять половину угла, представленного этим поворотом, поскольку при перемещении точки с северного полюса на южный, широта изменяется от нуля до 180 градусов, а угол поворота колеблется от 0 до 360 градусов. («долгота» точки тогда представляет конкретную ось вращения.) Обратите внимание, однако, что этот набор вращений не замыкается при композиции. Два последовательных поворота с осями в плоскости xy не обязательно приведут к вращению, ось которого лежит в плоскости xy , и, следовательно, не могут быть представлены как точка на сфере. Этого не будет с обычным вращением в 3-м пространстве, в котором вращения действительно образуют замкнутое множество при композиции.

Сфера вращений для вращений, имеющих "горизонтальную" ось (в плоскости xy ).

Эта визуализация может быть расширена до обычного вращения в трехмерном пространстве. Тождественное вращение - это точка, а небольшой угол поворота вокруг некоторой оси может быть представлен как точка на сфере с малым радиусом. По мере увеличения угла поворота сфера растет, пока угол поворота не достигнет 180 градусов, после чего сфера начинает сжиматься, становясь точкой, когда угол приближается к 360 градусам (или нулю градусов от отрицательного направления). Этот набор расширяющихся и сжимающихся сфер представляет собой гиперсферу в четырехмерном пространстве.(3-сфера). Как и в более простом примере выше, каждому вращению, представленному в виде точки на гиперсфере, соответствует его противоположная точка на этой гиперсфере. «Широта» на гиперсфере будет составлять половину соответствующего угла поворота, и окрестность любой точки станет «более плоской» (т.е. будет представлена ​​трехмерным евклидовым пространством точек) по мере того, как окрестность сжимается. Такому поведению соответствует набор единичных кватернионов: общий кватернион представляет точку в четырехмерном пространстве, но ограничение его единичной величины дает трехмерное пространство, эквивалентное поверхности гиперсферы. Величина единичного кватерниона будет равна единице, что соответствует гиперсфере единичного радиуса.Векторная часть единичного кватерниона представляет собой радиус 2-сферы, соответствующей оси вращения, а ее величина является косинусом половины угла поворота. Каждое вращение представлено двумя единичными кватернионами противоположных знаков, и, как и в пространстве вращений в трех измерениях, произведение кватернионов двух единичных кватернионов даст единичный кватернион. Кроме того, пространство единичных кватернионов является «плоским» в любой бесконечно малой окрестности данного единичного кватерниона.в любой бесконечно малой окрестности данного единичного кватерниона.в любой бесконечно малой окрестности данного единичного кватерниона.

Параметризация пространства поворотов [ править ]

Мы можем параметризовать поверхность сферы двумя координатами, такими как широта и долгота. Но широта и долгота плохо себя ведут ( вырождаются ) на северном и южном полюсах, хотя полюса по сути не отличаются от любых других точек на сфере. На полюсах (широты + 90 ° и −90 °) долгота теряет смысл.

Можно показать, что никакая двухпараметрическая система координат не может избежать такого вырождения. Мы можем избежать таких проблем , поместив сферу в трехмерное пространство и параметризовав ее тремя декартовыми координатами ( w ,  x ,  y ) , разместив северный полюс в точке ( w ,  x ,  y ) = (1, 0, 0) , южный полюс в точке ( w ,  x ,  y ) = (−1, 0, 0) и экватор в точке w = 0 , x 2 + y 2 = 1 . Точки на сфере удовлетворяют ограничениюw 2 + x 2 + y 2 = 1 , поэтому у нас все еще есть только две степени свободы, хотя есть три координаты. Точка ( w ,  x ,  y ) на сфере представляет собой вращение в обычном пространстве вокруг горизонтальной оси, направленной вектором ( x ,  y , 0) на угол.

Таким же образом гиперсферическое пространство трехмерных вращений может быть параметризовано тремя углами (углами Эйлера ), но любая такая параметризация вырождается в некоторых точках гиперсферы, что приводит к проблеме блокировки кардана . Мы можем избежать этого, используя четыре евклидовых координаты w ,  x ,  y ,  z , где w 2 + x 2 + y 2 + z 2 = 1 . Точка ( w ,  x ,  y ,  z )представляет собой поворот вокруг оси, направленной вектором ( x ,  y ,  z ) на угол

Объяснение свойств кватернионов с поворотами [ править ]

Некоммутативность [ править ]

Умножение кватернионов некоммутативно . Этот факт объясняет, как формула pq p q −1 вообще может работать, имея q q −1 = 1 по определению. Поскольку умножение единичных кватернионов соответствует композиции трехмерных поворотов, это свойство можно сделать интуитивно понятным, показав, что трехмерные повороты в целом не коммутативны.

Поставьте две книги рядом друг с другом. Поверните один из них на 90 градусов по часовой стрелке вокруг оси z , затем переверните на 180 градусов вокруг оси x . Возьмите вторую книгу, сначала переверните ее на 180 ° вокруг оси x , а затем на 90 ° по часовой стрелке вокруг оси z . Две книги не совпадают. Это показывает, что, как правило, композиция двух разных вращений вокруг двух разных пространственных осей не будет коммутировать.

Ориентация [ править ]

Векторное произведение , используется для определения представления оси угла, делает совещается с ориентацией ( «хиральность») в пространство: в трехмерном векторном пространстве, три вектора в уравнении а  ×  Ь = с всегда будет образовывать правый -ручный набор (или левосторонний набор, в зависимости от того, как определяется перекрестное произведение), таким образом фиксируя ориентацию в векторном пространстве. В качестве альтернативы зависимость от ориентации выражается в отношении такого u →, которое задает поворот относительно осевых векторов . В кватернионном формализме выбор ориентации пространства соответствует порядку умножения: ij = kно ji = - k . Если изменить ориентацию, то приведенная выше формула станет pq −1 p q , т. Е. Единица q заменяется сопряженным кватернионом - такое же поведение, как и для аксиальных векторов.

Альтернативные соглашения [ править ]

В [12] сообщается, что существование и продолжающееся использование альтернативного соглашения о кватернионах в аэрокосмической отрасли и, в меньшей степени, в сообществе робототехники связано со значительными и постоянными расходами [ sic ]. Это альтернативное соглашение предложено Шустером в [13] и отходит от традиции, изменяя определение умножения кватернионных базисных элементов таким образом, чтобы оно соответствовало соглашению Шустера, в то время как определение Гамильтона .

По соглашению Шустера формула умножения двух кватернионов изменяется так, что

Формула поворота вектора кватернионом изменена на

Чтобы определить изменения в соответствии с соглашением Шустера, обратите внимание на то, что знак перед перекрестным произведением перевернут с плюса на минус.

Наконец, формула преобразования кватерниона в матрицу вращения изменяется на

что в точности представляет собой транспонирование матрицы вращения, преобразованной по традиционному соглашению.

В приведенной ниже таблице приложения сгруппированы по их приверженности любому соглашению о кватернионах.

Используемые программные приложения по соглашению [ править ]

Хотя использование любого из соглашений не влияет на возможности или правильность созданных таким образом приложений, авторы [14] утверждали, что от соглашения Шустера следует отказаться, поскольку оно отклоняется от гораздо более старого соглашения об умножении кватернионов, принятого Гамильтоном, и, возможно, никогда не будет принято области математической или теоретической физики.

Сравнение с другими представлениями вращений [ править ]

Преимущества кватернионов [ править ]

Представление вращения в виде кватерниона (4 числа) более компактно, чем представление в виде ортогональной матрицы (9 чисел). Кроме того, для данной оси и угла можно легко построить соответствующий кватернион, и, наоборот, для данного кватерниона можно легко считать ось и угол. И то, и другое намного сложнее с матрицами или углами Эйлера .

В видеоиграх и других приложениях часто интересуют «плавные вращения», означающие, что сцена должна вращаться медленно, а не за один шаг. Это может быть выполнено путем выбора кривой, такой как сферическая линейная интерполяция в кватернионах, при этом одна конечная точка является тождественным преобразованием 1 (или некоторым другим начальным поворотом), а другая - предполагаемым окончательным поворотом. Это более проблематично с другими представлениями вращения.

При составлении нескольких поворотов на компьютере обязательно накапливаются ошибки округления. Кватернион, который немного отклонен, все еще представляет собой поворот после нормализации: матрица, которая немного отклонена, может больше не быть ортогональной, и ее труднее преобразовать обратно в правильную ортогональную матрицу.

Кватернионы также избегают явления, называемого блокировкой кардана, которое может возникнуть, когда, например, в системах вращения по тангажу / рысканью / крену тангаж поворачивается на 90 ° вверх или вниз, так что рыскание и крен в этом случае соответствуют одному и тому же движению, и степень отклонения теряется свобода вращения. В карданной основанных авиакосмической инерциальных навигационной системе , например, это может иметь катастрофические последствия , если воздушное судно находится в крутом пикировании или подъеме.

Преобразование в матричное представление и обратно [ править ]

От кватерниона к ортогональной матрице [ править ]

Ортогональная матрица , соответствующая вращению с помощью блока кватернионов г = + б я + с J + d K| г | = 1 ) , когда после умножения вектора - столбца задается

Эта матрица вращения используется для вектора w as . Кватернионное представление этого вращения определяется следующим образом:

где - сопряжение кватерниона , заданное формулой

Кроме того, умножение кватернионов определяется как (при условии, что a и b являются кватернионами, как z выше):

где порядок a , b важен, поскольку перекрестное произведение двух векторов не коммутативно.

От ортогональной матрицы к кватерниону [ править ]

Следует соблюдать осторожность при преобразовании матрицы вращения в кватернион, поскольку несколько простых методов имеют тенденцию быть нестабильными, когда след (сумма диагональных элементов) матрицы вращения равен нулю или очень мал. Для метода стабильного преобразования ортогональной матрицы в кватернион, см кватернион подраздел матрицы поворота статьи .

Подгонка кватернионов [ править ]

Выше разделе описано , как восстановить кватернион д из 3 × 3 матрицы вращения Q . Предположим, однако, что мы имеем некоторую матрицу Q , которая не чистое вращение, из - за ошибок округления , например, и мы хотим найти кватернионов д , который наиболее точно представляет Q . В этом случае мы строим симметричную матрицу 4 × 4

и найдите собственный вектор ( x ,  y ,  z ,  w ), соответствующий наибольшему собственному значению (это значение будет равно 1, если и только если Q является чистым вращением). Полученный таким образом кватернион будет соответствовать вращению, наиболее близкому к исходной матрице Q [ сомнительно ] . [15]

Сравнение производительности [ править ]

В этом разделе обсуждается влияние на производительность использования кватернионов по сравнению с другими методами (ось / угол или матрицы вращения) для выполнения вращений в 3D.

Результаты [ править ]

Только три из кватернионных компонентов независимы, поскольку вращение представлено единичным кватернионом. Для дальнейших вычислений обычно требуются все четыре элемента, поэтому все расчеты потребуют дополнительных затрат на восстановление четвертого компонента. Точно так же угол / ось могут быть сохранены в трехкомпонентном векторе путем умножения единичного направления на угол (или его функцию), но это требует дополнительных вычислительных затрат при использовании его для вычислений.

* Примечание. Кватернионы можно неявно преобразовать в матрицу, подобную вращению (12 умножений и 12 сложений / вычитаний), которая выравнивает стоимость вращения следующих векторов с помощью метода матрицы вращения.

Используемые методы [ править ]

Есть три основных подхода к вращению вектора v :

  1. Вычислите матричное произведение матрицы вращения 3 × 3 R и исходной матрицы столбца 3 × 1, представляющей v . Для этого требуется 3 × (3 умножения + 2 сложения) = 9 умножений и 6 сложений, самый эффективный метод поворота вектора.
  2. Вращение может быть представлено кватернионом единичной длины q = ( w ,  r ) со скалярной (действительной) частью w и векторной (мнимой) частью r . Вращение можно применить к трехмерному вектору v → с помощью формулы . Это требует всего 15 умножений и 15 сложений для вычисления (или 18 умножений и 12 сложений, если множитель 2 выполняется посредством умножения). Эта формула, первоначально предполагавшаяся для использования с обозначением оси / угла (формула Родригеса), также может быть применяется к кватернионной нотации. Это дает тот же результат, что и менее эффективная, но более компактная формула умножения кватернионов .
  3. Используйте формулу угла / оси, чтобы преобразовать угол / ось в матрицу вращения 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 сложений / вычитаний.

Пары единичных кватернионов как вращения в четырехмерном пространстве [ править ]

Пара единичных кватернионов z l и z r может представлять любое вращение в четырехмерном пространстве . Учитывая четырехмерный вектор v и предполагая, что это кватернион, мы можем повернуть вектор v следующим образом:

Пара матриц представляет собой поворот на 4 . Обратите внимание, что, поскольку две матрицы должны коммутировать. Следовательно, есть две коммутирующие подгруппы группы четырехмерных вращений. Произвольные четырехмерные вращения имеют 6 степеней свободы; каждая матрица представляет 3 из этих 6 степеней свободы.

Поскольку генераторы четырехмерных вращений могут быть представлены парами кватернионов (как показано ниже), все четырехмерные вращения также могут быть представлены.

См. Также [ править ]

  • Механизм предотвращения скручивания
  • Бинарная полиэдральная группа
  • Бикватернион
  • Графики на SO (3)
  • Алгебры Клиффорда
  • Преобразование между кватернионами и углами Эйлера
  • Покрытие пространства
  • Двойной кватернион
  • Двойное комплексное число
  • Эллиптическая геометрия
  • Формализмы вращения в трех измерениях
  • Вращение (математика)
  • Спиновая группа
  • Slerp , сферическая линейная интерполяция
  • Олинде Родригес
  • Уильям Роуэн Гамильтон

Ссылки [ править ]

  1. Перейти ↑ Shoemake, Ken (1985). «Анимация вращения с помощью кватернионных кривых» (PDF) . Компьютерная графика . 19 (3): 245–254. DOI : 10.1145 / 325165.325242 .Представлен на SIGGRAPH '85.
  2. ^ JM McCarthy, 1990, Введение в теоретическую кинематику , MIT Press
  3. ^ Амнон Кац (1996) Вычислительная Жесткое Vehicle , Krieger Publishing Co. ISBN 978-1575240169 
  4. ^ JB Kuipers (1999) Кватернионы и последовательности вращения: учебник с приложениями к орбитам, аэрокосмической и виртуальной реальности , Princeton University Press ISBN 978-0-691-10298-6 
  5. ^ Карстен Кунце, Helmut Schaeben (ноябрь 2004). «Распределение кватернионов Бингама и его сферическое преобразование радона в текстурном анализе». Математическая геология . 36 (8): 917–943. DOI : 10,1023 / Б: MATG.0000048799.56445.59 . S2CID 55009081 . 
  6. ^ "Часто задаваемые вопросы по comp.graphics.algorithms" . Проверено 2 июля 2017 года .
  7. Родриг, О. (1840), Des lois géométriques qui régissent les déplacements d'un système solide dans l'espace, et la вариация координат, провозглашенных в ses déplacements con- sidérés независимые от причин qui peuvent les produire, Journal de Mathures et Appliquées de Liouville 5, 380–440.
  8. ^ Уильям Роуэн Гамильтон (1844-1850) О кватернионах или новой системе воображаемых в алгебре , Philosophical Magazine , ссылка на коллекцию Дэвида Р. Уилкинса в Тринити-колледже, Дублин
  9. Lee, Byung-Uk (1991), «Дифференциация с помощью кватернионов, приложение B» (PDF) , докторская диссертация, Стерео сопоставление ориентиров черепа, Стэнфордский университет : 57–58
  10. ^ Альтманн, Саймон Л. (1989). «Гамильтон, Родригес и скандал с кватернионом». Математический журнал . 62 (5): 306. DOI : 10,2307 / 2689481 . JSTOR 2689481 . 
  11. ^ Саймон Л. Альтман (1986) Вращения, кватернионы и двойные группы , Dover Publications (см. Особенно гл. 12).
  12. ^ Соммер, Х. (2018), «Почему и как избежать перевернутого умножения кватернионов», Aerospace , 5 (3): 72, arXiv : 1801.07478 , doi : 10.3390 / aerospace5030072 , ISSN 2226-4310 
  13. ^ Шустер, доктор медицины (1993), "Обзор представлений отношения", Журнал астронавтических наук , 41 (4): 439–517, Bibcode : 1993JAnSc..41..439S , ISSN 0021-9142 
  14. ^ Соммер .
  15. ^ Бар-Itzhack, Itzhack Y. (ноябрь-декабрь 2000), "Новый метод для извлечения кватернион из матрицы вращения", журнал Наведение, управления и динамики , 23 (6): 1085-1087, Bibcode : 2000JGCD .. .23.1085B , DOI : 10,2514 / 2,4654 , ISSN 0731-5090 
  16. ^ Эберли, Д., Представления вращения и проблемы с производительностью
  17. ^ "Bitbucket" . bitbucket.org .
  • Грубин, Карл (1970). «Вывод схемы кватернионов через ось Эйлера и угол». Журнал космических аппаратов и ракет . 7 (10): 1261–1263. Bibcode : 1970JSpRo ... 7.1261G . DOI : 10.2514 / 3.30149 .
  • Бэтти-Пратт, EP; Рэйси, Т.Дж. (1980). «Геометрическая модель фундаментальных частиц». Международный журнал теоретической физики . 19 (6): 437–475. Bibcode : 1980IJTP ... 19..437B . DOI : 10.1007 / BF00671608 . S2CID  120642923 .
  • Arribas, M .; Elipe, A .; Паласиос, М. (2006). «Кватернионы и вращения твердого тела». Селест. Мех. Дин. Astron . 96 (3–4): 239–251. Bibcode : 2006CeMDA..96..239A . DOI : 10.1007 / s10569-006-9037-6 . S2CID  123591599 .

Внешние ссылки и ресурсы [ править ]

  • Шумейк, Кен. «Кватернионы» (PDF) .
  • «Простой тип Quaternion и операции на более чем тридцати компьютерных языках» .по Rosetta Code
  • Харт, Джон К. «Демонстратор кватерниона» .
  • Dam, Eik B .; Кох, Мартин; Лиллхольм, Мартин (1998). «Кватернионы, интерполяция и анимация» (PDF) .
  • Леандра, Виччи (2001). «Кватернионы и вращения в трехмерном пространстве: алгебра и ее геометрическая интерпретация» (PDF) .
  • Хауэлл, Томас; Лафон, Жан-Клод (1975). «Сложность кватернионного продукта, TR75-245» (PDF) . Корнелл Университет.
  • Хорн, Бертольд КП (2001). «Некоторые замечания по кватернионам и вращению единиц» (PDF) .
  • Ли, Бюнг-Ук (1991). Единичное кватернионное представление вращения - Приложение A, Дифференциация с кватернионами - Приложение B (PDF) (докторская диссертация). Стэндфордский Университет.
  • Вэнс, Род. «Некоторые примеры связных групп Ли» .
  • «Визуальное представление вращения кватернионов» .