1. 程式人生 > >java geometry判斷點線上的那一側,左側或右側,利用向量積,通過經緯度變化來判斷目標運動方向,是否過線

java geometry判斷點線上的那一側,左側或右側,利用向量積,通過經緯度變化來判斷目標運動方向,是否過線

線由兩點確定,判斷一個點線上的那一邊,來判斷gis引用中,通過經緯度變化來判斷目標運動方向

利用向量積正負判斷位置

        Point2D.Double target = new Point2D.Double(0,0.5);
        Point2D.Double one = new Point2D.Double(0,0);
        Point2D.Double two = new Point2D.Double(1,1);

        double v = (two.x-one.x)*(target.y-one.y)-(target.x-one.x)*(two.y
-one.y); System.out.println(v);

這是利用【向量積】判斷點在【向量】的左側還是右側,向量是【有方向】的

站在點one看向點two的向量

v>0 點target在左側
v=0target在線上
v<0 target在右側

one->two向量 與 one->target向量的向量積,右手定則
向量積右手定則

自己畫座標系,看看就知道了