两个多边形的最近点

Moe*_*Moe 5 algorithm geometry polygon

我有两个多边形,我想获得最小距离,并测量该距离之间的点.当然,这一点很可能位于两个节点之间的边缘.

这是一个例子:

例

我正在寻找一种算法,它给我绿色距离和两点.

lui*_*979 2

如果多边形不相交,您可以这样做:

如果有多边形 A 和多边形 B,则 A[i] 和 B[j] 分别是 A 和 B 的顶点。然后你可以计算从 A[i] 到 B 的每个线段的最近距离(你可以使用类似这样的东西,但考虑到你将使用线段,所以你必须使用线段的起点和终点段)。

然后你必须做同样的事情,但是从所有 B[j] 到 A 的所有段。

最后取最小的一个。

请记住我之前的评论:在计算到该线段所在线的最短距离时考虑该线段的起点和终点,因为交点可能位于该线段之外。请看这里检查最后一件事。如果该点在外面,则保留线段最近的边缘)

问候