2017-02-07 9 views
-1

私はペットプロジェクトのマウスの移動距離を測定したいと思います。だから私は実験を設定したい:1mでどのくらい正確に移動距離を得ることができるかを考えてみよう。マウスの移動距離の測定方法は?

私はテストプログラムを書こうとしましたが、いくつかの問題がありました。

私はRobotクラスを使用してマウスの位置を設定していますが、これが正しいかどうかはわかりません。どのように画面や他の解決策を解く方法を知っていますか?

はここに私のテストコードです:いや、私は、マウスのを使用したい

public class App { 
    public static void main(String[] args) throws AWTException { 
     Toolkit toolkit = new WToolkit(); 
     int screenResolution = toolkit.getScreenResolution(); 
     Robot robot = new Robot(); 
     List<Point> list = new ArrayList<Point>(); 
     int distance = 0; 
     while (true) { 
      if(MouseInfo.getPointerInfo().getLocation().y <= 50) 
      { 
       robot.mouseMove(910, 1080); 
      } 
      list.add(MouseInfo.getPointerInfo().getLocation().getLocation()); 
      if(list.size() >= 2) { 
       Point p2 = list.get(list.size()-1); 
       Point p1 = list.get(list.size()-2); 
       if(p2.getY() <= p1.getY()) { 
        distance += (int) Math.sqrt(0 + Math.pow(p2.y - p1.y, 2)); // sqrt(pow(x2-x1) + pow(y2-y1)) sqrt(pow(x2-x1) = 0 for just measure on Y 
        System.out.println(distance/screenResolution * 0.0254); 
       } 
      } 
      try { 
       Thread.sleep(200); 
      } catch (Exception e) { 
       System.out.println("something"); 
      } 
     } 
    } 
} 
+0

更新の間で全体的な旅を見つけるために、点P1、P2を更新絶えずだろうロボットのための光センサ。センサーでは、ロボットが動いた距離を測定したい。ですから、マウスセンサーで可能かどうかを知りたいのです。 – Poko

+0

私はあなたがJavaでそれを行うことはできないと思います。 'MouseInfo'はあなたにマウスポインタの現在の位置だけを与えることができます - あなたがいる' GraphicsDevice'の端を越えて測定することはできません。 (おっと、私は間違ったボックスに最初に入力した)。 –

+0

なぜあなたは平方根 'p2.y - p1.y'を二乗していますか? –

答えて

1

このソリューションでは、あなたは距離が

//I think this code should work for what you are doing 
double distance = Math.sqrt(Math.pow(p1.getX()-p2.getX(),2)+Math.pow(p1.getY()-p2.getY(),2)); 
関連する問題