在CoreMotion中从地面获取参考CMAttitude(aTtitude,而不是aLtitude)

时间:2012-04-17 07:40:12

标签: ios core-motion

我想根据地面水平获得参考CMAttitude,例如,绘制地平线。

实际上,我可以通过随时获得参考态度来旋转我的视图,并使用multiplyByInverseOfAttitude来获得与之前态度相比的手机旋转。没关系。

但是我无法在开始时找到如何在地面上获得它。我主要是在纵向模式,IOS5,并使用CMAttitudeReferenceFrameXTrueNorthZVertical(因为我也使用CoreLocation)。

我看过气泡水平或茶壶样本(使用加速器),但没有找到一个简单的答案或样本来解决我的设备运动态度问题。我可能错过了一些东西。

感谢。

1 个答案:

答案 0 :(得分:3)

我自己的答案。

实际上,考虑到参考态度的使用,我的方式是错误的。我只需要根据deviceMotion对象中可用的重力计算旋转角度,如下所示:

    double rotation = atan2(dm.gravity.x, dm.gravity.y) - M_PI;