Android デバイスでの動きを OpenGL シーンにマッピングしようとしています。
簡単な動きの加速度計の値を記録しました。電話を (テーブルの上に平らに置いて) 10cm 前方 (+x)、次に 10cm 後方 (-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 加速度計の値です。