将 N 个圆圈随机放置在矩形中而不重叠

Randomly placing N circles in rectangle without overlapping

我想在给定大小的矩形中放置 N 个具有给定共同半径的圆,这样圆在 Python 中不重叠。我目前的解决方案是:

1) 创建一组 space 中的每个点,并在生成下一个圆之前从中删除会导致重叠的点(但当矩形很大时它会很慢)。

2) 从一组不重叠的点(例如每 2r + const)中绘制球的中心(但这里的位置不够随机)。

您还有其他更有效的想法吗?

所以 2D 中最有效的包装是六边形包装,你可以硬编码你的程序来为圆圈包装

在此处阅读更多相关信息:https://en.wikipedia.org/wiki/Circle_packing