如何检查点是否在对角线周围的矩形内?

时间:2013-03-25 14:47:56

标签: java gwt vector java-canvas

首先:我知道我可以计算从pointline的距离,以检查该点是否在线上。这就是我在一行上检测点击次数(offset)。

但在此之前,我想对diagonal line进行一般检查。 具有起点和终点的线本身定义了一个矩形区域:

Pstart(sx, sy), Pend(ex, ey).

我可以使用边界检查来确定Point(px, py)是否在rectangle内:

sx <= px && ex >= px && sy <= px && ey >= py

但这仅适用于线从左上角到右下角的情况。 如果方向不同,我必须修改算法。无论行方向如何,我怎么能使用上面的公式?

如何让公式相应地考虑方向?

2 个答案:

答案 0 :(得分:3)

只需比较Math.min(sx, ex) <= px <= Math.max(sx, ex),同样比较y尺寸。

答案 1 :(得分:0)

如果点(xP,yP)位于从(x1,y1)到(x2,y2)的线段上,则

Line2D.ptSegDist(x1, y1, x2, y2, xP, yP)返回0.0。 Line2D.ptLineDist为无限线做同样的事情。