计算顶点数的算法

时间:2016-04-14 09:37:26

标签: algorithm geometry polygon convex-hull convex

令CH1和CH2为两个凸多边形。给出一个与顶点数量成线性关系的算法计算,它们的联合凸包证明它在两个多边形之间相互关系的所有不同可能情况下都有效。

有没有办法做到这一点?

1 个答案:

答案 0 :(得分:1)

Rotating calipers是解决此类问题的有力工具。

查看this article

的第2.6部分The Convex Hull of Two Convex Polygons

发表评论:我确信这是一个非常简单的算法。

  • 从垂直线开始。
  • 找到两个多边形的最左边的点。选择其中最左边的一个。它属于船体。
  • 在此点修复该行。
  • 围绕此点旋转直到它接触下一个点(来自两个多边形)(请注意,您只需要前向搜索,因此总时间为O(m + n))
  • 将此点添加到船体,修复线。
  • 重复。

查看文章(和其他rot.cal。描述)了解详情。

请注意,此算法类似于gift wrapping