【问题标题】:How can I find the minimal circle include some given points?如何找到包含一些给定点的最小圆?
【发布时间】:2010-06-23 14:32:45
【问题描述】:

我已经给出了一些点(2D 坐标),并希望找到包含所有这些点的最小圆。该算法不必非常有效(虽然它自然会很好)。

【问题讨论】:

标签: algorithm 2d


【解决方案1】:

这就是所谓的 Smallest Enclosure Balls 问题(在你的例子中,Smallest Enclosure Circle),也就是 Miniball。这个问题有几种算法和实现——以下都是线性时间解决方案(即,给定 n 个球,如果它们在 O(n) 内运行,您认为尺寸 d 是固定的,在您的情况下是 d=2):

  • 对于 2D 和 3D,Gärtner's implementation 可能是最快的。

  • 1234563 )。
  • 对于非常非常高的维度,core-set(近似)算法会更快。

注意:如果您正在寻找一种算法来计算最小的封闭球体of spheres,您可以在Computational Geometry Algorithms Library (CGAL) 中找到一个 C++ 实现。 (您不需要使用所有 CGAL;只需提取所需的头文件和源文件即可。)

【讨论】:

    猜你喜欢
    • 2017-01-18
    • 2010-12-03
    • 1970-01-01
    • 1970-01-01
    • 2015-01-04
    • 1970-01-01
    • 2017-03-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多