Значения акселерометра с устройства Android / iPhone - PullRequest
2 голосов
/ 23 апреля 2010

Я пытаюсь отобразить свои движения с помощью устройства Android в сцене OpenGL.

Я записал значения акселерометра для простого движения: перемещение телефона (лежит на столе) на 10 см вперед (+ x), а затем на 10 см назад (-x).

Проблема состоит в том, что эти значения, используемые для вычисления скорости и положения, заставляют двигаться только куб opengl.Похоже, зарегистрированного отрицательного ускорения было недостаточно для снижения скорости и инвертирования ее движения.

В чем может быть проблема?

Это моя функция, которая обновляет скорость и положение каждый раз, когда появляются новые данные.входит:

void updatePosition(double T2) {
    double T = 0.005;
    Vec3 old_pos = position.clone(), old_vel = velocity.clone();

    velocity = old_vel.plus(acceleration.times(T));
    position = old_pos.plus(old_vel.times(T).plus(acceleration.times(0.5 * Math.pow(T, 2))));

}

Это значения акселерометра X, Y, Z за все захваченное время:

альтернативный текст http://img25.imageshack.us/img25/7528/forces.jpg

1 Ответ

1 голос
/ 23 апреля 2010

Ваша функция принимает параметр T2, который, я предполагаю, является входом акселератора?но вы используете T, который вы объявили как double T = 0.005;поэтому ваша функция всегда будет двигаться вперед со статической скоростью.

...