如何理解iOS 8设备态度的初始参考框架?

时间:2015-08-23 03:27:04

标签: ios iphone accelerometer quaternions core-motion

在关于iOS事件处理指南的Apple开发者文档中,我们可以找到一条声明“当您的应用启动设备动态更新时,Core Motion会建立参考框架”。

  1. 这意味着当我启动我的应用程序时,第一个旋转数据是我的参考框架?
  2. 如果这是真的,当我以任何态度开始我的应用时,第一组四元数应该是[1 0 0 0],这是对的吗?
  3. 关于四元数的实验:

    1. 我在桌面上使用iphone平台启动我的应用
        四元数:[0.999 0.003 0.010 -0.004]
       加速度计:[0.01 0.00 -1.00]
    2. 我以X轴倾斜角度启动我的应用
      四元数:[0.97 0.22 0.000 0.000]
      加速度计:[0.00 -0.44 -0.89]
    3. 实验结果与文档中的陈述不符。我真的很困惑。

1 个答案:

答案 0 :(得分:2)

当您对偏离初始位置感兴趣时,使用参考框架CMAttitudeReferenceFrameXArbitraryZVertical。在CMAttitudeReferenceFrameXArbitraryZVertical的参考框架中,报告的第一个态度建立了初始参照系。这意味着它的值基本上是任意的。你应该忽略它的价值,但同时你需要保存这种初始态度,然后总是在任何新的态度上调用multiplyByInverseOfAttitude:,将保存的态度作为参数。这为您提供了与初始位置相关的信息。