我想根据地面水平获得参考CMAttitude,例如,绘制地平线。
实际上,我可以通过随时获得参考态度来旋转我的视图,并使用multiplyByInverseOfAttitude来获得与之前态度相比的手机旋转。没关系。
但是我无法在开始时找到如何在地面上获得它。我主要是在纵向模式,IOS5,并使用CMAttitudeReferenceFrameXTrueNorthZVertical(因为我也使用CoreLocation)。
我看过气泡水平或茶壶样本(使用加速器),但没有找到一个简单的答案或样本来解决我的设备运动态度问题。我可能错过了一些东西。
感谢。
答案 0 :(得分:3)
我自己的答案。
实际上,考虑到参考态度的使用,我的方式是错误的。我只需要根据deviceMotion对象中可用的重力计算旋转角度,如下所示:
double rotation = atan2(dm.gravity.x, dm.gravity.y) - M_PI;