在CoreMotion中从地面获取一个参考CMAttitude(姿态,不是高度)。

3
我想获取一个基于地平面的参考CMAttitude,例如绘制地平线。
实际上,我能够通过在任何时候获取参考姿态并使用multiplyByInverseOfAttitude旋转我的视图,以获得与先前姿态相比的手持设备旋转。这很好。
但是我无法找到如何从开始就获取它。我主要处于纵向模式下,使用CMAttitudeReferenceFrameXTrueNorthZVertical(因为我还利用了CoreLocation)。
我已经查看了泡沫水平仪或茶壶示例(使用加速器),但没有找到与设备运动态度问题相符的简单答案或示例。我可能漏掉了什么。
谢谢。
1个回答

3

我的回答。

实际上,我在考虑参考态度的使用方面犯了错误。我只需要从deviceMotion对象中可用的重力计算出旋转角度,就像这样:

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

我可以知道你是如何计算旋转角度的吗? - sam
这是iPhone屏幕相对于地面(水平)水平的角度。 - Spi
你有没有想过如何根据预定义的方向更新陀螺仪旋转速率? - sam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接