Почему люди используют кватернионы?

15

Я использовал их в качестве черного ящика некоторое время, я просто изучаю математику, но я просто хотел бы получить некоторые окончательные ответы на этот вопрос.

Пока что единственное преимущество, с которым я столкнулся лично, - это возможность SLERP между двумя углами - для достижения того же эффекта с вектором вам нужно довольно уродливое решение (внутренне связывая 0 и 2PI вместе).

SirYakalot
источник
SLERP - это не просто интерполяция между двумя углами: это также легко сделать с помощью матрицы. Он может интерполировать между двумя произвольными ориентациями, что гораздо сложнее, когда выполняется с матрицами.
Кальмарий

Ответы:

23

Кватернионы решают несколько проблем элегантно:

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

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

Кай
источник
1
это именно то, что я искал!
SirYakalot
@Kai Interpolation works from any start to end angle without special casing, на самом деле есть особый случай, когда они не находятся в одном и том же полушарии гиперсферы, это на самом деле особый случай, который вы должны рассмотреть, так как всегда есть 2 направления для интерполяции к цели, и вы хотите выбрать правильный
Maik Semder
2
@ Кай They never exhibit gimbal lock- это не совсем так. Они могут просто размножаться q(Xaxis, 0) * q(YAxis, 90) * q(Zaxis, 20). Правда, они могут использоваться, чтобы избежать блокировки карданного подвеса, но могут быть использованы матрицы, углы оси и другие. Так что это не уникальное свойство кватернионов. Фактически вы можете сделать это с большинством представлений вращения, но с углами Эйлера. Единственное верное сообщение здесь может быть «Эйлер Энглз страдает от блокировки карданного подвеса», но этому могут помочь многие другие представления вращения, а не только кватернионы.
Майк Земдер
Кроме того, производительность кватерниона обычно не лучше во всех случаях, например, вращение вектора с использованием матрицы 3х3 быстрее, чем с использованием кватерниона. Вот интересная статья об этом.
Майк Земдер
3

Упомянутое вами использование SLERP является частным случаем более общего атрибута кватернионов: вы можете плавно интерполировать различные значения вращения.

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

jhocking
источник
+1. Можно интерполировать между (w1, alpha1) и (w2, alpha2) путем преобразования этих представлений угловой оси в кваты и последующего использования SLERP. Конечно, можно сделать это с помощью схемы Безье / де Кастельжау / схемы сплайнов и таким образом использовать «многоугольник / набор» ключевых кватернионов, и придумать сложное вращение. Это, пожалуй, единственное, что кватернионы делают более естественно, чем другие представления, поскольку SLERP и multiSLERP или их вариации (NLERP, SQUAD) имеют промежуточные пары ось / угол вращения, которые лежат на геодезическом / кратчайшем пути вращения. Престижность.
Теодрон