我现在手头没有iPhone 4,我正在寻找一份文档,其中显示设备的偏航、俯仰和翻滚范围以及相应位置。
我知道加速度计变化范围为-1到+1,但是昨天在我的iPhone上测试时,发现翻转范围从-M_PI到+M_PI,但是偏航和俯仰范围只有这个范围的一半。这是正确的吗?
我在苹果模糊的文档中没有看到关于这些范围的文档。我该在哪里找到这些文档?
谢谢。
我现在手头没有iPhone 4,我正在寻找一份文档,其中显示设备的偏航、俯仰和翻滚范围以及相应位置。
我知道加速度计变化范围为-1到+1,但是昨天在我的iPhone上测试时,发现翻转范围从-M_PI到+M_PI,但是偏航和俯仰范围只有这个范围的一半。这是正确的吗?
我在苹果模糊的文档中没有看到关于这些范围的文档。我该在哪里找到这些文档?
谢谢。
这不是一个完整的答案,但为了让讨论开始:
我假设您谈论的是设备姿态而不是原始陀螺仪数据。
根据经验(我面前有一台显示这些值的第四代iPod touch):
俯仰角:看起来范围为-(M_PI/2) -> +(M_PI/2),尽管我的设备限制在大约+1.55/-1.51
横滚角:-M_PI -> +M_PI
偏航角:-M_PI -> +M_PI
只是一个注意点,在我的设备上,俯仰角不能区分“向前”和“向后”倾斜,只给出设备相对于重力方向的角度。要确定屏幕是否向下或向上指向,当然可以检查gravity.z.
如果您正在使用CMDeviceMotion,则它有一个名为gravity的属性,只需获取gravity.z即可。如果设备的显示屏向上倾斜(远离重力),则其值为负数;如果显示屏向下(朝向重力)则为正数.
请注意,CMDeviceMotion使用的算法非常擅长将重力与用户加速度分离,但在某些运动类型下,可能需要等待一段时间才能使值正确,我很想听听有更好解决方案的人的看法。