2

ここに私のコードがあります:

      float x; 
      @Override
      public void onSensorChanged(SensorEvent event) {

    if(event.values[0] > .2){
        x = -1*(Math.round(event.values[0]));           
        centerx = centerx +(x*10);
    }

    else if(event.values[0] < -.2){
        x =  -1*Math.round(event.values[0]);
        centerx = centerx +(x*10);
    }
    mCustomDrawableView.invalidate();



    y = Math.round(event.values[1]);

    if(event.values[2] > .4){
        z = event.values[2];    
    }   

}

加速度計を使用して垂直線を前後に動かしています。centerx は、垂直線の上端と下端です。デバイスを右に移動すると、線が左に移動し、物理的な世界にあるかのように、同じ位置にあるように見えるようにしようとしています (拡張現実を考えてください)。

SensorEvent から与えられた値を使用して、中心線を移動するための演算を行っています。唯一の問題は、アドバイスを 5 のように動かすと加速度計の値が上がるが、動きを止めると 4 から 3、2 から 1 から 0 に減少することです。そのため、線は横に跳ね返って元の中心に戻ります。この「バウンス」を取り除き、ラインを新しい位置にとどめる方法を探しています。何か案は?

4

0 に答える 0