我在使用Ogre工具,但是遇到了一个通用的四元数问题。
我有一个物体,最初应用了一个旋转四元数Q1。后来,我想让它看起来就像最初将对象按不同的四元数Q2进行了旋转。
我应该如何计算四元数,以便将已经通过Q1旋转的对象与Q2的初始/默认方向相对齐?我在研究(s)lerping算法,但我不确定这是否仅适用于定位而非旋转?
我在使用Ogre工具,但是遇到了一个通用的四元数问题。
我有一个物体,最初应用了一个旋转四元数Q1。后来,我想让它看起来就像最初将对象按不同的四元数Q2进行了旋转。
我应该如何计算四元数,以便将已经通过Q1旋转的对象与Q2的初始/默认方向相对齐?我在研究(s)lerping算法,但我不确定这是否仅适用于定位而非旋转?
听起来你想要Q1乘以Q2的逆运算。通过Q1的逆变换可以将物体旋转回到其原始框架(即初始方向,正如你所说),然后通过Q2的变换将其旋转到新方向。
请注意,四元数的标准定义应用的是从右到左的乘法顺序,因此你需要计算为Q = Q2*Q1^{-1}。
QTransition * QInitial = QFinal
QTransition = QFinal * QInitial^{-1}