定义 n 个球体,使得没有 2 个球体相互重叠

Define n spheres such that no 2 spheres will overlap each other

我有一个matlab/math问题,

我想定义 n 个球体(每个球体应由一个 3D 点和一个半径定义),这样两个球体就不会相互重叠。 球体应该是完全随机的(只要它们不相互重叠)。

有没有有效的方法?

我知道有一个选项可以每次定义一个比当前最远球体更远的球体(您可以通过 norm(center)+radius 定义球体有多远)。但是这样一来,我们就错过了很多可能的选择(比如定义两个与原点距离相同但仍然不重叠的球体)。

谁有更聪明的方法?

谢谢

无法生成 "completely random" 数据,某些限制始终存在。

您可以生成随机点,然后为该点集构建 Voronoi 图并制作以这些点为中心且半径不大于到最近的 Voronoi 单元面的距离的球体