【问题标题】:Closest points of two polygons两个多边形的最近点 【发布时间】:2013-09-24 05:44:40 【问题描述】: 我有两个多边形,我想得到最小距离,并测量这个距离之间的点。当然这样的点很可能位于两个节点之间的边缘。 这是一个例子: 我正在寻找一种算法,它可以给我绿色距离和两个点。 【问题讨论】: 从图片看来,plygons 可能是凹的。否则 GJK 算法是解决问题的好方法 见stackoverflow.com/questions/3700983/… 标签: algorithm geometry polygon 【解决方案1】: 如果多边形不相交,您可以这样做: 如果你有多边形 A 和多边形 B 并且 A[i] 和 B[j] 分别是 A 和 B 的顶点。然后你可以计算从 A[i] 到 B 的每个段的最近距离(你可以使用 this 之类的东西,但要考虑到你正在处理段,所以你必须处理开始和结束段的点)。 那么你必须做同样的事情,但从所有 B[j] 到 A 的所有段。 最后取最小的一个。 请记住我之前的评论:在计算到该线段所在线的最短距离时考虑线段的起点和终点,因为交点可能在线段之外。查看here 以检查最后一件事。如果该点不在,则保留该段的最近边缘) 问候 【讨论】: