0

JAVA でマウス IR イベントから受信した 12 の座標の平均を計算するにはどうすればよいですか?

つまり、すべての動きが X 座標と Y 座標で送信されます。これらの座標を 12 の座標にバッファリングする これらの 12 の座標の平均を計算する

配列の平均を取得する方法は知っていますが、X が座標の場合はどのように機能しますか? X は変更されるため、まだ定義されていません。どうすればこれを行うことができますか?

このようなものが仕事をします:

  int count = 0;
     double buffer = 0;
     while(true){ // loop waarin inputs binnen komen
     if(true){ // stel dat je een input binnenkrijgt
           count++;
           buffer += oX;
              if( count == 12 ){ // als je er 12 gekregen hebt
                 //send_output( buffer/12 ); // verzend
                 // reset buffer en count
                 System.out.println(buffer/12);
                         buffer = 0;
                     count = 0;

                  }
            }
        }

@edit多分それをよりよく理解するために:

public void onIrEvent(IREvent arg0) {       
    int oX;
    int oY;

    oX = arg0.getAx()/10;
    oY = arg0.getAy()/10;

oX と oY は、12 の座標が存在するバッファに入れる必要があります。次に、それらの平均を計算します。

前もって感謝します

敬具

パスカル

4

1 に答える 1

0

Make bufferX、およびbufferY2 つの変数 public 。このメソッドでそれらを設定します

int i =0;
public void onIrEvent(IREvent arg0) {       
    int oX;
    int oY;

    oX = arg0.getAx()/10;
    oY = arg0.getAy()/10;

/////////////here set the buffer
  if(i<12){
     bufferX += oX;
     bufferY +=oY;
 }
 i++;
}

この例を試してください:

public class MouseMotionEventDemo extends JPanel implements MouseMotionListener {

private int mX, mY;
int bufferX = 0;
int bufferY = 0;
int count = 0;

public MouseMotionEventDemo() {
    addMouseMotionListener(this);
    setVisible(true);
}

public void mouseMoved(MouseEvent me) {
    mX = (int) me.getPoint().getX();
    mY = (int) me.getPoint().getY();
    bufferX += mX;
    bufferY += mY;
    System.out.println("X: "+mX+"  Y:"+mY);
    count++;
    if (count == 12) { 
        System.out.println("X average =" +bufferX / 12);
        System.out.println("Y average =" +bufferY / 12);
        count = 0;

    }
}

public void mouseDragged(MouseEvent me) {
     }

public static void main(String[] args) {
    JFrame f = new JFrame();
    f.getContentPane().add(new MouseMotionEventDemo());
    f.setSize(200, 200);
    f.show();


}

}

于 2013-04-10T08:59:14.270 に答える