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

时间:2020-05-22 13:14:45

标签: python algorithm geometry computational-geometry

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

1)在空间中创建每个点的集合,并从该点中删除会导致在生成下一个圆之前重叠的点(但是,矩形较大时会很慢)。

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

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

2 个答案:

答案 0 :(得分:0)

所以2D格式中最有效的打包是六角形打包,您只需对程序进行硬编码就可以为圆提供这种打包

在此处详细了解:https://en.wikipedia.org/wiki/Circle_packing

答案 1 :(得分:-1)

您可以将生成的圆的坐标存储在集合中,然后在生成新的随机坐标后检查生成的圆是否会与其他圆重叠 为此,您需要检查条件:- SET中i的距离(i,P)> = 2R 我在SET中的位置 R是圆半径 P是随机生成的点