IOS加速计/陀螺仪问题



我想写一个应用程序,给出的位置度从一些坐标(底部的手机)。

例如

…如果我以45度的角度拿着手机,我想在屏幕上显示45度。如果用户以45度的角度拿着手机,并围绕从耳机到home键的轴旋转手机,我想要显示这个角度(0-180度之间)。

我已经实现了加速度计,我得到x, y, z值,然而,我如何转换它们?我知道它们的单位是G (1G, 0.9G, -0.5G在各自的轴上),但转换是什么?我在正确的轨道上吗?我应该用陀螺仪吗?

谢谢。

这个问题有一个例子。您可以使用atan2(y, x),并使用* (180/M_PI)将弧度转换为度数。

对于任意实参数x和y都不等于0,atan2(y, x)是平面的正x轴与坐标(x, y)给出的点之间的弧度角。

-维基百科关于atan2的文章

如果你可以依靠陀螺仪的支持,我建议使用它,因为你可以得到(欧拉)角度直接没有任何计算。参见iOS -陀螺仪示例,并按照里面的链接。

不要使用UIAccelerometer,因为它很快就会被弃用。新的CoreMotion框架总是更好的选择,即使对于旧设备也是如此。

最新更新