Warum benutzen die Leute Quaternionen?

15

Ich benutze sie schon eine Weile als Blackbox, ich lerne gerade etwas über Mathematik, aber ich möchte nur einige endgültige Antworten auf diese Frage.

Bisher ist der einzige Vorteil, den ich persönlich erlebt habe, die Fähigkeit, zwischen zwei Winkeln zu SLERPEN - um den gleichen Effekt mit einem Vektor zu erzielen, ist eine ziemlich hässliche Umgehung erforderlich (intrinsische Verknüpfung von 0 und 2PI).

SirYakalot
quelle
SLERP ist nicht nur eine Interpolation zwischen zwei Winkeln, sondern auch eine einfache Interpolation mit der Matrix. Es kann zwischen zwei beliebigen Orientierungen interpolieren, was bei Matrizen sehr viel komplexer ist.
Calmarius

Antworten:

23

Quaternionen lösen ein paar Probleme auf elegante Weise:

  • Sie sind so kompakt wie Achsenwinkel-Darstellungen (4 Skalarwerte)
  • Sie können leicht in und aus Matrixdarstellungen konvertiert werden
  • Die Interpolation funktioniert von jedem Anfangs- bis zum Endwinkel ohne spezielles Gehäuse
  • Sie weisen niemals eine Kardansperre auf

Sie können diese Probleme mit anderen Darstellungen umgehen, aber Quaternionen passen gut zu ihrer algorithmischen Einfachheit und Leistung.

Kai
quelle
1
Das ist genau das, wonach ich gesucht habe!
SirYakalot
@ Kai Interpolation works from any start to end angle without special casing, es gibt tatsächlich einen Sonderfall, wenn sie sich nicht auf derselben Hemisphäre der Hypersphäre befinden. Dies ist tatsächlich ein Sonderfall, den Sie berücksichtigen müssen, da es immer zwei Richtungen zum Ziel zu interpolieren gibt und Sie auswählen möchten der Richtige
Maik Semder
2
@Kai They never exhibit gimbal lock- das stimmt nicht ganz. Sie können sich einfach vermehren q(Xaxis, 0) * q(YAxis, 90) * q(Zaxis, 20). Sie können zwar verwendet werden, um eine Kardanverriegelung zu vermeiden, aber auch Matrizen, Achsenwinkel und andere. Das ist also keine einzigartige Eigenschaft von Quaternionen. Tatsächlich können Sie das mit den meisten Rotationsdarstellungen tun, aber mit Eulerwinkeln. Die einzig wahre Botschaft kann sein: "Euler Engländer leiden unter Gimbal Lock", aber sie kann durch viele andere Rotationsdarstellungen vermieden werden, nicht nur durch Quaternionen.
Maik Semder
Auch die Leistung einer Quaternion ist im Allgemeinen nicht in allen Fällen besser. Beispielsweise ist es schneller, einen Vektor mit einer 3x3-Matrix zu drehen, als mit einer Quaternion. Hier ist ein interessantes Papier darüber.
Maik Semder
3

Die von Ihnen erwähnte SLERP-Verwendung ist ein spezieller Fall eines allgemeineren Attributs von Quaternionen: Sie können problemlos zwischen verschiedenen Rotationswerten interpolieren.

Beim Interpolieren der Rotationswerte von Eulerwinkeln treten merkwürdig aussehende Bewegungen auf, und es gibt logischerweise keine Möglichkeit, die Werte von Achsenwinkelrotationen zu interpolieren (abgesehen von zwei verschiedenen Winkeln um dieselbe Achse).

schockierend
quelle
+1. Man kann zwischen (w1, alpha1) und (w2, alpha2) interpolieren, indem man diese Winkelachsendarstellungen in Quats umwandelt und dann SLERP verwendet. Natürlich kann man so etwas über ein Bezier / de Casteljau-Schema / Spline-Schema tun und ein "Polygon / Set" von Schlüsselquaternionen so verwenden und sich eine komplizierte Rotation ausdenken. Dies ist vielleicht das einzige, was Quaternionen natürlicher tun als andere Darstellungen, da SLERP und multiSLERP oder ihre Variationen (NLERP, SQUAD) dazwischenliegende Rotationsachsen / Winkel-Paare aufweisen, die auf einem geodätischen / kürzesten Rotationspfad liegen. Ein dickes Lob.
Teodron