gpt4 book ai didi

algorithm - 理解寻找最小圆包围点的算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:21:25 26 4
gpt4 key购买 nike

目前我尝试学习和理解几何算法,我发现最小圆问题非常有趣。我找到了许多解决方案和不同的算法,包括 this one我不确定是不是 Emo Welzl 的。

但是,我不明白一个特定的(重要的)部分:

  1. 你在 (XY) 平面上得到 N 个点。
  2. 你随机排序这些点数
  3. 选择 3 个点并在它们位于圆边界上的位置创建圆。
  4. 获取下一个点并检查它是否被圆包围:

    a) 如果是封闭的,重复4直到没有剩下的点。

    b) 如果 未包含在内,则创建一个新圆,其中新点位于圆边界上,所有其他点仍位于圆内或圆上。

步骤 1) 到 4a) 很简单,我的问题是步骤 4b)。我怎样才能找到这个新圈子?对我来说,这似乎是同一个问题,只是有一个较小的(子)点集。 (分而治之)

我想我必须用新点替换 3 个原始点中的一个(前 3 个点,构成第一个圆圈),但我不确定如果这真的有效……

最佳答案

从 A、B、C 三个点,您可以计算出圆心 O:与这三个点等距的点。其坐标xO和yO分别是xA、xB、xC和yA、yB、yC的平均值。

我们称 D 为第 4 个点,追踪圆心 0 和半径 OD 的圆。

OD > OA(且 OA=OB=OC)所以 A、B 和 C 在圆圈中。

编辑

我上面提出的解决方案并不是最优的。

我找到了 Welzl 算法的一个很好的解释:see link

当然,你可以很容易地通过谷歌学术搜索找到他的论文,但它很难阅读。

基本原则是,在 4b) 中,圆是根据边界上具有 D 的所有可能圆以及之前在边界上的其他两个点(或者一个点,如果不起作用,它将与 D 截然相反)。

关于algorithm - 理解寻找最小圆包围点的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33443006/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com