多边形边上的点

Point on polygon edge

确定点是否在多边形边缘上的最佳方法是什么?我们现在使用该点与其最近的多边形边之间的距离,但估计所有多边形情况的距离限制确实是一个难题。

欢迎任何想法。

谢谢。

您可以分别处理每条边,然后 "enlarge" 将它们形成所需宽度的矩形条带。

这是通过将测试点投影到边缘的支撑线上,检查投影是否落在线段上,并计算两点之间的距离来完成的。

AB为边段,P为点。 Q(t) = A + t AB 是沿边的任意点,我们希望它是投影,所以在矢量上,

PQ(t).AB = (PA + t AB).AB = 0,

t = - PA.AB / AB²

检查 t 是否落在 [0,1] 中并计算 |PQ(t)|.

就足够了

为了更好地处理拐角处,您可以考虑从点到顶点的距离。

保留如此计算的所有距离中的最短距离。