Java 如何检查给定点是否在线段中?

Java 如何检查给定点是否在线段中?,java,boolean,line,point,line-segment,Java,Boolean,Line,Point,Line Segment,如何检查给定点是否在线段中 我一开始用这个: if (s == null) { return false; } if (!(s instanceof Point)) { return false; } return (x == ((Point) s).x && y == ((Point) s).y); 但它并没有真正起作用,因为线段不是对象 这是我目前的代码: public class Point { double x; double y;

如何检查给定点是否在线段中

我一开始用这个:

if (s == null) { return false; }
if (!(s instanceof Point)) { return false; }
return (x == ((Point) s).x && y == ((Point) s).y); 
但它并没有真正起作用,因为线段不是对象

这是我目前的代码:

public class Point {

    double x;
    double y;   

    public Point(double x, double y) {

        this.x = x;
        this.y = y;
    }
    public String toString () {
        return "(" + x + ", " + y + ")";
    }

    public Line straightThrough (Point p) {
    // TODO 
    }

    public boolean onLineSegment(LineSegment s) {

        if (s == null) {
            return false;
        // TODO
        }
    }
}

编辑:据我所知,这里有些问题可能和我的一样。。。我需要的答案不在这里。

好吧,假设一条线段由两个点定义:enpoint和startpoint,这就是如何测试给定点是否位于该线段上:

boolean     isOnLineSegment(LineSegment seg, Point test) {

return  (   (test.y-seg.startPoint.y)/(test.x-seg.startPoint.x) == (test.y-seg.endPoint.y)/(test.x-seg.endPoint.y);

}

非常感谢您的回答!这对我帮助很大!:)