У меня проблемы с двойными кватернионами, и я думаю, это потому, что они не нормализованы должным образом. A, B и A' - двойственные кватернионы, где последний сопряжен. При этом: Q = A * B * A 'теоретически я всегда должен получать Q = B, если A и B правильно нормализованы. Но в некоторых случаях я этого не делаю, и это полностью портит всю мою скелетную иерархию.
На многих страницах показано, что норма двойственного кватерниона равна ||Q|| = sqrt(QQ'), но это означает извлечение квадратного корня из двойственного числа, а я понятия не имею, как это сделать. Так что прямо сейчас я просто делю все это на длину реальной части.
Я искал несколько дней, но мне еще предстоит найти хороший пример кода, как использовать двойные кватернионы. Я чувствую, что знаю теорию довольно хорошо, но я все еще не могу заставить ее работать.