将 N 个圆圈随机放置在矩形中而不重叠
Randomly placing N circles in rectangle without overlapping
我想在给定大小的矩形中放置 N 个具有给定共同半径的圆,这样圆在 Python 中不重叠。我目前的解决方案是:
1) 创建一组 space 中的每个点,并在生成下一个圆之前从中删除会导致重叠的点(但当矩形很大时它会很慢)。
2) 从一组不重叠的点(例如每 2r + const)中绘制球的中心(但这里的位置不够随机)。
您还有其他更有效的想法吗?
所以 2D 中最有效的包装是六边形包装,你可以硬编码你的程序来为圆圈包装
在此处阅读更多相关信息:https://en.wikipedia.org/wiki/Circle_packing
我想在给定大小的矩形中放置 N 个具有给定共同半径的圆,这样圆在 Python 中不重叠。我目前的解决方案是:
1) 创建一组 space 中的每个点,并在生成下一个圆之前从中删除会导致重叠的点(但当矩形很大时它会很慢)。
2) 从一组不重叠的点(例如每 2r + const)中绘制球的中心(但这里的位置不够随机)。
您还有其他更有效的想法吗?
所以 2D 中最有效的包装是六边形包装,你可以硬编码你的程序来为圆圈包装
在此处阅读更多相关信息:https://en.wikipedia.org/wiki/Circle_packing