多边形边上的点
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)|
.
就足够了
为了更好地处理拐角处,您可以考虑从点到顶点的距离。
保留如此计算的所有距离中的最短距离。
确定点是否在多边形边缘上的最佳方法是什么?我们现在使用该点与其最近的多边形边之间的距离,但估计所有多边形情况的距离限制确实是一个难题。
欢迎任何想法。
谢谢。
您可以分别处理每条边,然后 "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)|
.
为了更好地处理拐角处,您可以考虑从点到顶点的距离。
保留如此计算的所有距离中的最短距离。