我现在没有 iPhone 4,我正在尝试查找显示偏航、俯仰和滚动范围以及设备对应位置的文档。
我知道加速度计从 -1 到 +1 不等,但在我昨天在 iPhone 上的测试中,我发现滚动从 -M_PI 到 +M_PI 不等,但偏航和俯仰范围是其中的一半。它是否正确?
我在哪里可以找到有关这些范围的文档?我没有在 Apple vague docs 上看到它。
谢谢。
我现在没有 iPhone 4,我正在尝试查找显示偏航、俯仰和滚动范围以及设备对应位置的文档。
我知道加速度计从 -1 到 +1 不等,但在我昨天在 iPhone 上的测试中,我发现滚动从 -M_PI 到 +M_PI 不等,但偏航和俯仰范围是其中的一半。它是否正确?
我在哪里可以找到有关这些范围的文档?我没有在 Apple vague docs 上看到它。
谢谢。
这不是一个完整的答案,但为了开始滚动:
我假设您在谈论设备姿态而不是原始陀螺仪数据。
有趣的是(我面前有一个 ipod touch 4 gen 显示这些值):
音高:看起来是 -(M_PI/2) -> +(M_PI/2) 的范围,尽管我的上限为 ~ +1.55 / -1.51
滚动:-M_PI -> +M_PI
偏航:-M_PI -> +M_PI
请注意,至少在我的设备俯仰角上并没有区分倾斜“向前”与“向后”,只是给出了设备相对于重力方向的角度。要确定屏幕是朝下还是朝上,您当然可以检查gravity.z。
如果你使用 CMDeviceMotion 有一个名为重力的属性,只需获取重力.z。如果设备的显示屏向上倾斜(远离重力),则为负;如果显示屏朝下(朝向重力),则为正
请注意,CMDeviceMotion 使用的算法非常擅长将重力与用户加速度分开,但在某些类型的运动下,在值变得正确之前可能会有一些滞后,我很想从有更好解决方案的人那里得到。
我最近在一个 iOS 应用程序中遇到了同样的问题,它计算了手机的翻转次数。Apple 拒绝了它,所以我在 GitHub 上发布了它,可能对你有用:
翻转你的手机!- https://github.com/apascual/flip-your-phone
我从没想过使用重力 Z 变量的解决方案,我会尽快尝试,然后我会带来一些更新。