Определение скорости встряхивания - PullRequest
2 голосов
/ 31 марта 2009

Можно ли определить скорость, с которой кто-то трясет свой iPhone? Это будет время, когда они начнут двигаться к конечной точке, где они теперь возвращаются к началу. В основном это один раз, который я хотел бы измерить скорость. Это обсуждение комментирует начальную скорость: http://discussions.apple.com/message.jspa?messageID=8297689#8297689. Кажется, что в iPhone отсутствует важная составляющая расстояния, чтобы получить хороший показатель скорости.

Ответы [ 2 ]

3 голосов
/ 31 марта 2009

Конечно, кажется, что все, что вам нужно сделать, это численно интегрировать ускорение дважды, чтобы получить пройденное расстояние. Например, посмотрите на Рассчитать положение ускоряющегося тела через определенное время

Обратите внимание, что вам нужно будет вычесть гравитацию из измеренного ускорения, чтобы получить кинетическое ускорение, которое вы должны интегрировать. Что касается того, как это сделать, re: комментарий GoatRider: я мог бы попытаться сохранить последнее измеренное ускорение, величина которого была равна гравитации (я думаю, что это 1 в единицах iPhone?). Затем для каждого измерения ускорения, которое вы производите, величина которого больше 1, вычтите последнее известное ускорение силы тяжести - это должно быть вычитание вектора - и используйте его в качестве кинетического ускорения. Конечно, это предполагает, что пользователь удерживает телефон в одном и том же положении во время пролистывания, что, я думаю, было бы приблизительно верно.

К сожалению, нет никакой техники, которую вы могли бы использовать, чтобы различать гравитационное ускорение и кинетическое ускорение в целом, то есть решительный пользователь всегда мог найти способ обмануть любой алгоритм, который вы могли бы придумать. (Общая информация: это называется принцип эквивалентности , и это основа теории общей теории относительности Эйнштейна)

2 голосов
/ 31 марта 2009

Вы должны будете сделать вычисления самостоятельно. Каждое событие ускорения, которое вы получите, сообщит вам об относительных G-силах, зарегистрированных на акселерометре, и времени, когда событие было записано. Вам придется выбрать несколько событий и интерполировать. Вот больше информации о самом событии ускорения:

Класс UIAcceleration Reference

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...