我想写一个应用程序,给出的位置度从一些坐标(底部的手机)。
例如…如果我以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框架总是更好的选择,即使对于旧设备也是如此。