加速度計を使用して、デバイスがスライドする距離を測定しようとしています。これが私がやっている方法です:
- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration {
CGFloat interval = [NSDate timeIntervalSinceReferenceDate] - lastTime;
CGFloat velocity = ((acceleration.y + lastAcceleration) / 2) * interval * 9.8 + lastVelocity;
totalDistance += velocity * interval;
lastAcceleration = acceleration.y;
lastVelocity = velocity;
lastTime = [NSDate timeIntervalSinceReferenceDate];
}
結果は非常に不安定で、実際の値の +/- 30% の範囲です。私の計算は正しいですか? もしそうなら、どうすればこのコードをより正確にできますか?