2

我如何确定一个点(x,y)是否在其他两个点之间创建的线上?我试过这个,但似乎有问题,因为我没有得到我应该得到的结果。

public boolean intersects(Point k, Point z, Point p) {

        Line2D line = new Line2D.Float(k.x, k.y, z.x, z.y);

        if (line.ptLineDist(p) == 0) {
            return true;
        } else {
            return false;
        }

    }
4

1 回答 1

2

试试这个,考虑到 Hovercraft 关于浮点数不精确的注释。

public boolean intersects(Point k, Point z, Point p) {
       return new Line2D.Float(k, z).ptLineDist(p) <= 0.01;
}
于 2012-06-11T19:45:31.657 回答