2

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

例如...如果我以 45 度角拿着手机,我想在屏幕上显示:45 度。如果用户将手机保持在 45 度角并围绕从听筒到主页按钮的轴旋转手机,我想显示该角度(0-180 度之间)。

我已经实现了加速度计并获得了 x、y、z 值,但是,如何转换它们?我知道它们在 G 中(相应轴上为 1G、0.9G、-0.5G),但转换是什么?我什至走在正确的轨道上吗?我应该改用陀螺仪吗?

谢谢。

4

2 回答 2

3

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

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

- 关于atan2的维基百科文章

于 2011-09-23T00:02:10.873 回答
0

如果您可以依靠陀螺仪支持,我建议您使用它,因为您无需任何计算即可直接获得(欧拉)角。请参阅iOS - 陀螺仪示例并点击里面的链接。

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

于 2011-09-23T11:38:34.980 回答