Windows Form C#编程中:如果我现在知道两个点的坐标,还有一个点在变化,有什么简单的方法可以让我知道这个点何时在已知两点构成的<线段>中呢?有没有好点的方法?请各位大哥大姐不吝赐教,万分感激!!!

解决方案 »

  1.   

    如果两个点为A和B.第三个点为POINT
    if ((POINT.X - A.X)*(B.Y - A.Y) == (POINT.Y - A.Y)*(B.X - A.X))
        在一条线上
      

  2.   

    满足下列三个条件即在线段内:
    x在x1和x2之间
    y在y1和y2之间。
    x/y 等于 (x1 - x2)/(y1 - y2)
      

  3.   

    不好意思.是线段啊!改一下:
    if ((POINT.X - A.X)*(B.Y - A.Y) == (POINT.Y - A.Y)*(B.X - A.X)) && Valid(A,B,POINT)//个人感觉用乘法可以避免除数为0
        在一条线上private bool Valid(A,B,POINT)
    {
        POINT.X值介于A.X和B.X之间并且POINT.Y值介于A.Y和B.Y之间,则返回true,否则为false
    }
    不知是否可行?