Я пытаюсь отобразить свои движения с помощью устройства 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