距离由加速度计移动

我想通过移动iPhone在iPhone屏幕上移动对象(矩形,圆形等)。 例如,我沿着X轴移动iPhone,对象沿着X轴移动。 Y,Z轴也一样。

我该怎么做? 我可以得到algorithm吗?

谢谢。

PS:我看了一会儿,似乎可以使用加速度计。

你通过两次整合线性加速度得到位置,但是错误是可怕的。 在实践中是无用的。

这是为什么(Google技术讲座)在23点20分解释。 我强烈推荐这个video。

然而, 陀螺仪鼠标可能适用于您的应用程序,请参阅video中的37:00-38:25。

类似的问题:

跟踪iphone的小动作,没有GPS
手机加速度计用于定位时的真实世界精度是多less?
如何计算手机在静止的垂直方向上的移动?
iOS:3D空间中的运动精度
如何使用加速度计为Android应用程序开发测量距离
我怎样才能find陀螺仪和加速度传感器的距离?

不容易做到准确。 一个加速度计只报告加速度 ,而不是运动。 您可以尝试(数字)整合随时间推移的加速度,但最终可能会累积累积误差并导致意外运动。

伪代码显然未经testing:

init: loc = {0, 0, 0} ; location of object on screen vel = {0, 0, 0} ; velocity of object on screen t = 0 ; last time measured step: t0 = time ; get amount of time since last measurement dt = t0 - t accel = readAccelerometer() vel += accel * dt ; update velocity loc += vel * dt ; update position displayObjectAt(loc) 

为什么不使用加速度本身,而是距离移动? 例如; 如果您的加速度为东经1.4G,则您的物体应该移动到东14像素/秒,直到您的加速度发生变化。

所以这个物体的运动就好像是在一个相对的力量下,我觉得它是比较现实的。 更快的移动装置,更大的力量来影响物体。

也看:

http://www.freescale.com/files/sensors/doc/app_note/AN3397.pdf

使用加速计,陀螺仪和指南针来计算3D世界中的设备运动

Interesting Posts