Чому люди використовують кватерніони?


15

Я деякий час використовую їх як чорну скриньку, я просто дізнаюся про математику, але мені хотілося б отримати кілька остаточних відповідей на це питання.

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


SLERP - це не просто інтерполяція між двома кутами: це легко зробити і матрицею. Він може інтерполювати між двома довільними орієнтаціями, що набагато складніше, якщо це зроблено з матрицями.
Кальмарій

Відповіді:


23

Кватерніони вирішують кілька завдань елегантно:

  • Вони такі ж компактні, як вісь-кут зображення (4 скалярні значення)
  • Вони легко перетворюються на матричні подання та з них
  • Інтерполяція працює від будь-якого кута початку до кінця без спеціального кожуха
  • Вони ніколи не демонструють карданний замок

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


1
це ТОЧНО те, що я шукав!
СерЯкалот

@Kai Interpolation works from any start to end angle without special casing, насправді є особливий випадок, коли вони знаходяться не на одній півкулі гіперсфери, це насправді особливий випадок, який ви повинні врахувати, оскільки завжди є два напрямки для інтерполяції до цілі, і ви хочете вибрати правильний
Майк Семдер

2
@Kai They never exhibit gimbal lock- це не зовсім так. Вони можуть, просто розмножуватися q(Xaxis, 0) * q(YAxis, 90) * q(Zaxis, 20). Щоправда, їх можна використовувати, щоб уникнути фіксації каркаса, але так само можуть бути матриці, осі-кути та інші. Тож це не є унікальною властивістю кватерніонів. Насправді ви можете це зробити з більшістю подань обертання, але з кутами ейлера. Єдиним справжнім повідомленням тут може бути "Ейлер англійські страждають від фіксації каркаса", але це може допомогти безлічі інших обертальних уявлень, а не лише кватерніонів.
Майк Семер

Не ефективність кватерніона зазвичай краща у всіх випадках, наприклад, швидше обертати вектор за допомогою матриці 3x3, ніж використовувати кватерніон. Ось цікава стаття про це.
Майк Семер

3

Використання SLERP, яке ви згадуєте, є конкретним випадком більш загального атрибута кватерніонів: ви можете плавно інтерполювати між різними значеннями обертання.

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


+1. Можна інтерполювати між (w1, alpha1) і (w2, alpha2), перетворивши ці представлення кутових осей у квати, а потім використовуючи SLERP. Звичайно, можна зробити таке за допомогою схеми / сплайну Безьє / де Кастелау і використовувати "багатокутник / набір" ключових кватерніонів таким чином і створити складне обертання. Це, мабуть, єдине, що кватерніони роблять природніше інших репрезентацій, оскільки SLERP та multiSLERP або їх варіації (NLERP, SQUAD) придумують проміжні пари осі / кута обертання, які лежать на геодезичному / найкоротшому шляху обертання. Кудос.
теодрон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.