Справочник по акселерометру пользовательского интерфейса для вычисления расстояния, пройденного человеком

Как я могу использовать класс UIAccelerometer для вычисления расстояния, пройденного человеком?


person Sid    schedule 27.05.2010    source источник


Ответы (1)


Это непрактично из-за ограничений, связанных с акселерометрами.

  1. Они измеряют ускорение, а не расстояние. Вы можете интегрировать его, чтобы получить скорость, и интегрировать скорость, чтобы получить расстояние, но двойное интегрирование очень быстро потеряет точность, и даже без проблем с точностью вам необходимо установить начальную скорость, которую акселерометр не может определить. .
  2. Вам также потребуются высокочастотные данные об ориентации, чтобы различать ускорение и силу тяжести. Без этого вы не можете сказать, в каком направлении увеличивается скорость. Вы даже не можете сказать, линейно ли оно; кто-то мог вращать устройство на конце веревки.

Вместо этого используйте GPS через класс CLLocationManager.

person Marcelo Cantos    schedule 27.05.2010
comment
В гы. Ускорение 1 примерно равно ускорению свободного падения на уровне моря (см. здесь). Но почему вы спрашиваете? Вы не можете использовать ускорение. - person Marcelo Cantos; 27.05.2010
comment
Когда я говорю «очень быстро», я имею в виду, что чтение, вероятно, сильно ухудшится за секунды и станет совершенно бессмысленным в течение нескольких минут; И это без проблемы отсутствия данных об ориентации, что в основном делает это невозможным. - person Marcelo Cantos; 27.05.2010
comment
Просто получить точное ускорение сложно, взгляните на этот вопрос - person progrmr; 27.05.2010