Скорость отработки UIAccelerometer - PullRequest
1 голос
/ 08 апреля 2011

Я просто хотел узнать, как я могу получить скорость, с которой движется UIAccelerometer, чтобы я знал, как быстро двигаться UIView.

1 Ответ

1 голос
/ 08 апреля 2011

О, мальчик, это немного сложно.

Акселерометр не дает вам скорости, но, как мы все знаем, это ускорение. Но вы можете понять это (но это не так просто).

Нам нужно использовать несколько простых физических расчетов. С помощью V (сейчас) = V (предыдущая) + ускорение (от акселерометра) * время (секунды с момента последнего чтения);

В коде вам нужно сделать несколько вещей.

  1. Вы должны выяснить, когда вы не двигаетесь. Например, оставьте устройство на секунду.
  2. Когда устройство перемещается, вы знаете, что устройство запущено с начальной скоростью 0 м / с
  3. Хорошо, так что давайте представим, что все очень просто, и мы проверяем акселерометр только раз в 1 секунду (позже, возможно, сделаем 10 раз в секунду.
  4. Хорошо, мы получаем первое чтение за 1 секунду, и ускорение составило 2.
  5. Таким образом, наша скорость через 1 секунду после отдыха будет равна = 0 + 2 * 1 = 2 м / с
  6. БОЛЬШОЙ, теперь прошла еще одна секунда (общее время прошло 2 секунды), скорость ускорения 2,5 теперь будет V (сейчас) = Vpervious (2) + T (прошло с момента предыдущего чтения) 1 * 2,5 = 2 + 1 * 2,5 = 4,5 м / с

Помните, что здесь T - время, прошедшее с последнего чтения, а не общее время.

Если я прав (кто-то может исправить меня, акселерометр отправляет обратно фактическое значение a в наших уравнениях). Так что вы должны иметь возможность подключить это.

Также акселерометр даст вам 3 различных значения (x, y, z). Так что, возможно, сначала начните с одного направления, а затем, возможно, у другого.

Хотелось бы знать, если у вас это работает. Джон.

...