Я фізик і вивчив деякі програми, і натрапив на багато людей, які використовують кватерніони для обертань, а не писати речі в матричній / векторній формі.
У фізиці є дуже вагомі причини, що ми не використовуємо кватерніони (незважаючи на химерну історію, яку час від часу розповідають про Гамільтона / Гіббса / тощо). Фізика вимагає, щоб наші описи мали хорошу аналітичну поведінку (це має точно визначене значення, але в деяких досить технічних способах, що виходять далеко за рамки того, що викладають у звичайних вступних класах, тому я не буду вникати в будь-які деталі). Виявляється, у кватерніонів немає такої приємної поведінки, і тому вони не корисні, а вектори / матриці так, і ми їх використовуємо.
Однак, обмежуючись жорсткими обертаннями та описами, які не використовують жодної аналітичної структури, 3D-обертання можуть бути рівнозначно описані в будь-якому випадку (або кількома іншими способами).
Як правило, ми просто хочемо відображення точки X = (x, y, z) на нову точку X '= (x', y ', z') з обмеженням, що X 2 = X ' 2 . І є багато речей, які роблять це.
Наївний спосіб - просто намалювати трикутники, які це визначає, і використовувати тригонометрію, або використовувати ізоморфізм між точкою (x, y, z) і вектором (x, y, z) і функцією f (X) = X 'і матриця MX = X ', або з використанням кватерніонів, або проектування компонентів старого вектора вздовж нового, використовуючи якийсь інший метод (x, y, z) T. (a, b, c) (x', y ', z ') тощо.
З математичної точки зору, ці описи є рівнозначними в цій установці (як теорема). Усі вони мають однакову кількість ступенів свободи, однакову кількість обмежень тощо.
То чому чому кватерніони віддають перевагу над векторами?
Звичайні причини, які я бачу, - це не фіксація каркаса чи числові проблеми.
Аргумент без блокування гімбалів здається дивним, оскільки це лише проблема кутів ейлера. Це також лише координатна проблема (подібно до сингулярності при r = 0 в полярних координатах (якобіанський втрачає ранг)), що означає, що це лише локальна проблема, і її можна вирішити, перемикаючи координати, обертаючись від виродження, або за допомогою двох систем координат, що перекриваються.
Я менш впевнений у числових питаннях, оскільки не знаю докладно, як обидва ці (та будь-які альтернативи) будуть реалізовані. Я читав, що повторно нормалізувати кватерніон простіше, ніж зробити це для матриці обертання, але це справедливо лише для загальної матриці; обертання має додаткові обмеження, які дотримуються цього (які вбудовані у визначення кватерніонів) (насправді це має бути правдою, оскільки вони мають однакову кількість ступенів свободи).
То в чому причина використання кватерніонів над векторами чи іншими альтернативами?