给定 3D 空间中的 N 个点,如何找到包含这 N 个点的最小球体?
这个问题称为最小包围球问题。 (谷歌这个术语可以找到相关的教程和论文)。
这是一种实现:http://www.inf.ethz.ch/personal/gaertner/miniball.html http://www.inf.ethz.ch/personal/gaertner/miniball.html在c++中。
它的二维情况(找到一个圆来包围平面上的所有点)是计算几何课程中教授的经典示例。 3D 只是 2D 情况的简单扩展。
该问题的一种算法是增量式。你从 4 个点开始,它们固定一个球体,当你添加第 5 个点时,有两种情况:
该点在球体内。无需更新。
超出了要点。在这种情况下,您需要更新您的球体。那么一个重要的属性是这个新点必须在你的新球体上!
根据上述观察,你的问题变得更小了。阅读第 4.7 节这本书 https://rads.stackoverflow.com/amzn/click/com/3540656200。谷歌图书上也可以找到它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)