直线的两个端点已知,现在鼠标点在直线上的任意位置,判断此点是否在此直线上。

解决方案 »

  1.   

    要考虑误差,要不然手机屏幕传值都是int,用纯数学上的直线几乎都是点不在直线上的
      

  2.   

    把点击的X代入公式算出Y,与点击的Y比较,一个范围内则认为是在上面。
      

  3.   

    求方程嘛,把点放进去求么。这个很简单啊。
    你已经直接两个端点,比如说A和B点,坐标为0,0和1,1
    那么直接方程就是y=x,那么你说的一点C坐标如果是符合这个方程就说明在这条线上,反之则不在。如:(2,2),(3,3)(4,4)……
      

  4.   

    P1(X1,Y1),P2(X2,Y2),A(X3,Y3)
    public boolean isInLine(P1,P2,A){
           float k=(X2-X1)/(X2-X1)^2+(Y2-Y1)^2;
           float ik==(X3-X1)/(X3-X1)^2+(Y3-Y1)^2;
           if(k==ik)
              return ture;
           else
           return false;
    }
      

  5.   

    一个简单的方法,两个点(1,2)的坐标已知,第三个点(3)坐标也知道,就算前两个点1,2的距离x,再算1和3的距离y,再算2和3的距离z,看x=y+z?得的话就是在直线上啊,三角形的判断方法。这个方法效率高吧?应该是最合适的。