2017-03-27 5 views
0

Was ist eine gute Möglichkeit, 3D-Rotation pro Sekunde darzustellen, die mehr als 180 ° Rotation bewältigen kann und einfach/effizient mit einem Zeitdelta angewendet werden kann? Quaternionen sind ideal für die Orientierung, repräsentieren aber nicht mehr als 180 ° Rotation und sind nicht zu geradlinig, um mit einem Zeitdelta kombiniert zu werden.Darstellung der Rotation pro Sekunde in 3D

Antwort

1

Sie können die Achsenwinkeldarstellung verwenden, sie ist Quaternionen ziemlich ähnlich, so dass Sie leicht zwischen ihnen umwandeln können, es ist auch einfach zu lesen/verstehen/interpolieren und hat nicht die 180deg Grenze.

Sie müssen jedoch vorsichtig mit Konversionen zu Quaternionen sein. Sie können Ihre Zielrotation nicht wie rotate by 180deg in quaternion konvertieren, aber Sie können sie für den aktuellen Frame interpolieren und nur das aktuelle Delta konvertieren, wenn es kleiner als 180deg ist.

+0

In Bezug auf den zweiten Absatz Ihrer Antwort: Kann ich nicht einfach meinen Winkel/Umdrehungen um meine Achse um die Anzahl von Sekunden multiplizieren, drehen Sie das in eine Quaternion, und fügen Sie diese Quaternion zu der aktuellen Ausrichtung meines Objekts ? Die resultierende Ausrichtung sollte immer noch korrekt sein. – Wingblade

+0

Es tut mir leid, wenn ich dich fehlgeleitet habe, ich meinte nur, was du gesagt hast - dass du quaternions nicht verwenden kannst, um Rotationen> 180deg darzustellen. Sie können eine Quaternion für '720deg' Rotation berechnen und sie für das Rendern verwenden, aber Sie können nicht interpolieren von '0' bis '720deg' mit quaternion - für diesen Fall Interpolation Achse-Winkel-Darstellung. – kolenda

+0

Das macht mehr Sinn, danke für die Klärung! – Wingblade