2

Point(x,y) が他の 2 つのポイント間に作成された線上にあるかどうかを確認するにはどうすればよいですか? これを試しましたが、必要な結果が得られないため、何かが間違っているようです。

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 に答える