食肉动物四元数之间的区别

时间:2013-12-13 14:25:57

标签: c++ rotation quaternions ogre

我在食人魔中使用四元数。
我得到的每一帧:

 Ogre::Quaternion prev;

 bool frameStarted(const Ogre::FrameEvent& event) {
   const Ogre::Quaternion q = object->getOrientation();
   if(abs(q.x - prev.x) > ...) {
      /* do something */
      prev = q;
   }
 }

如何判断时间T + 1的X旋转是否比T时刻的X旋转小180°?

1 个答案:

答案 0 :(得分:2)

我真的不知道你想要用四元数的x成员做什么。如果您正在比较不同旋转轴的x坐标。

但是,如果我的问题是正确的,那么您正在寻找围绕x轴的旋转角度的差异。在这种情况下,http://en.wikipedia.org/wiki/Conversion_between_quaternions_and_Euler_angles解释了如何将四元数转换为欧拉角,这反过来将为您提供围绕每个规范基矢(X,Y和Z)的旋转角度。然后相当于比较欧拉角度(请记住它们将以弧度表示,因此使用pi而不是180)。