我正在实现一个软件,该软件通过加速度计(通过USB端口连接)读取原始数据并旋转虚拟对象(例如,在unity3d环境中的立方体)。 根据加速度计给出的原始数据,我计算出加速器组件:
Xg = raw_data[0]*range/pow(2,resolution-1) //for x accelerator component
Yg = raw_data[1]*range/pow(2,resolution-1) //for y accelerator component
Zg = raw_data[2]*range/pow(2,resolution-1) //for z accelerator component
其中范围和分辨率由加速度计数据表提供。
然后我通过以下公式计算俯仰和滚转角度:
roll = arctg(-Xg/Zg)*180/PI
pitch = arctg(Yg/sqrt(pow(Xg,2)+pow(Zg,2)))-180/PI
最后我从陀螺仪中获得了偏航角。
为了旋转场景中的物体,我将其欧拉角设置为这些值,但物体在x和z轴上有一个完整的旋转(滚动角和偏航角),但不是在y轴(俯仰角)里物体只旋转180度。 问题是俯仰角在[-90,90]度范围内和物体 不能有360度旋转。 对于y轴,是否有一个俯仰角公式可以360度旋转?非常感谢。