在下面的函数中,我试图从GLKQuaternion计算音高:
float panX = asinf(2.0f * (quaternion.z*quaternion.x - quaternion.w*quaternion.y));
return panX;
看起来它工作正常,但有一个问题。如果我理解为corectly,那么它基本上就是角度,并且在我的情况下,一旦它达到90度的值(无论它是正还是负),音高值开始慢慢减小。这是一个很大的问题,因为看起来这个对象开始在相反的一侧旋转(这不是)。
如何从[-90, 90]
?