2

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 加速度計の値です。

代替テキスト http://img25.imageshack.us/img25/7528/forces.jpg

4

1 に答える 1

1

あなたの関数は、アクセラレータ入力であると仮定しているパラメーター T2 を取りますか? ただし、 double T = 0.005; として宣言した T を使用しています。そのため、関数は常に静的な速度で前進します。

于 2010-04-23T08:33:34.970 に答える