首先:我知道我可以计算从point
到line
的距离,以检查该点是否在线上。这就是我在一行上检测点击次数(offset
)。
但在此之前,我想对diagonal line
进行一般检查。
具有起点和终点的线本身定义了一个矩形区域:
Pstart(sx, sy), Pend(ex, ey).
我可以使用边界检查来确定Point(px, py)
是否在rectangle
内:
sx <= px && ex >= px && sy <= px && ey >= py
但这仅适用于线从左上角到右下角的情况。 如果方向不同,我必须修改算法。无论行方向如何,我怎么能使用上面的公式?
如何让公式相应地考虑方向?
答案 0 :(得分:3)
只需比较Math.min(sx, ex) <= px <= Math.max(sx, ex)
,同样比较y
尺寸。
答案 1 :(得分:0)
Line2D.ptSegDist(x1, y1, x2, y2, xP, yP)返回0.0。 Line2D.ptLineDist为无限线做同样的事情。