我正在和食人魔中的四元数合作。
我得到的每一帧:
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°?
发布于 2013-12-13 23:06:15
我真的不明白你想对四元数的x成员做什么。如果有的话,那就是比较不同旋转轴的x坐标。
但是,如果我的问题是正确的,你是在寻找x轴旋转角度的差值。在这种情况下,http://en.wikipedia.org/wiki/Conversion_between_quaternions_and_Euler_angles解释了如何将四元数转换为欧拉角,欧拉角将为您提供围绕每个规范基向量(X,Y和Z)的旋转角度。然后,它相当于比较欧拉角(请记住,它们将是弧度,因此使用pi而不是180)。
https://stackoverflow.com/questions/20568849
复制相似问题