如何计算从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个坐标。然后计算它们的平均值。
提前致谢
亲切的问候
帕斯卡
答案 0 :(得分:0)
将bufferX
和bufferY
两个变量公开;并在此方法中设置它们
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();
}
}