我想写一个应用程序,从某个坐标(手机底部)给出位置的度数。
例如......如果我以45度角握住手机,我想在屏幕上显示:45度。如果用户将手机保持在45度并围绕从耳机到主页按钮的轴旋转手机,我想显示该角度(在0-180度之间)。
我已经实现了加速度计,我得到了x,y,z值,但是,我该如何转换它们呢?我知道它们在G轴上(相应轴上的1G,0.9G,-0.5G),但转换是什么?我甚至走在正确的轨道上吗?我应该使用陀螺仪吗?
感谢。
答案 0 :(得分:3)
This question有一个例子。您可以使用atan2(y, x)
并使用* (180/M_PI)
将弧度转换为度数。
对于任何实数参数x和y都不等于零,atan2(y,x)是一个平面的正x轴与由它上面的坐标(x,y)给出的点之间的弧度角。
- 关于atan2的维基百科文章
答案 1 :(得分:0)
如果您可以依靠陀螺仪支持我建议使用它,因为您可以直接获得(欧拉)角度而无需任何计算。请参阅iOS - gyroscope sample并按照里面的链接进行操作。
请勿使用UIAccelerometer,因为它很快就会被弃用。较新的CoreMotion框架始终是更好的选择,即使对于旧设备也是如此。