【问题标题】:How do I calculate a bounding polygon?如何计算边界多边形?
【发布时间】:2013-09-17 08:20:28
【问题描述】:

我有一堆 2D 点,我想计算包含所有点的多边形的周长。

这个数学过程有名字吗,我可以用谷歌搜索一下吗?或者有人可以告诉我如何开始思考这个问题吗?

【问题讨论】:

    标签: geometry polygon points


    【解决方案1】:

    您可能正在寻找convex hullconvex hull algorithms

    最简单的二维算法之一是Gift wrapping algorithm。引用维基百科:

    它的时间复杂度为O(nh),其中n是点数,h是凸面上的点数船体。当 n 很小或 h 相对于 n 预计非常小时,它的实际性能与其他凸包算法相比是有利的.在一般情况下,该算法的性能优于许多其他算法。

    因此,根据问题的大小,您可能需要查看上面链接的算法页面,以找到更高级的方法。

    【讨论】:

    • 谢谢。对这个问题的一点扩展:如果船体需要收缩一点(或很多)怎么办?我有一团点代表一团水,所以有些是船体侧面的有效凹痕。
    • 只是一个想法,但如果你使用类似于礼品包装算法的东西,但添加了一个约束,即船体中的下一个点必须在给定点的一定距离内,你可能会得到你所谓的“shin-wrap”效果。我不确定点云是如何计算的,但你必须保证在这个距离内存在一个点。
    【解决方案2】:

    一个定义良好的此类多边形是convex hull。有几个好好研究的algorithms for finding convex hulls

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-02
      • 2014-05-29
      • 2017-02-21
      • 1970-01-01
      • 1970-01-01
      • 2013-04-30
      • 2020-05-26
      • 2013-02-24
      相关资源
      最近更新 更多