确定震动的速度

时间:2009-03-30 21:10:11

标签: iphone cocoa-touch

是否可以确定某人晃动iPhone的速度?这将是他们开始移动到结束点的时间,他们现在回到原点。基本上它是一个滑动,我想测量速度。本讨论对初始速度进行了评论:http://discussions.apple.com/message.jspa?messageID=8297689#8297689。似乎iPhone中缺少距离的重要组成部分以获得良好的速度。

2 个答案:

答案 0 :(得分:3)

当然,听起来你需要做的就是将加速度数值积分两次以获得行进的距离。例如,看看 Calculate the position of an accelerating body after a certain time

请注意,您必须从测量的加速度中减去重力以获得动能加速度,这是您应该集成的。至于如何做到这一点,重新:GoatRider的评论:我可能会尝试存储最后测量的加速度,其幅度等于重力(我认为在iPhone单位中是1?)。然后对于每个加速度测量,你的幅度大于1,减去最后已知的重力加速度 - 这将需要是一个矢量减法 - 并将其用作动能加速度。当然,这假设用户在整个滑动过程中将手机保持在相同的方向,我认为这几乎是正确的。

不幸的是,没有任何技术可以用来区分重力加速度和动力学加速度 - 也就是说,一个坚定的用户总能找到一种方法来欺骗你可能想出的任何算法。 (琐事:那被称为等价原则,它是爱因斯坦广义相对论的基础)

答案 1 :(得分:2)

你必须自己做计算。您收到的每个加速事件都会告诉您在加速度计上注册的相对G力以及记录事件的时间。你必须对几个事件进行采样并进行插值。以下是有关加速事件本身的更多信息:

UIAcceleration Class Reference