随机将N个圆放置在矩形中而没有重叠
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了随机将N个圆放置在矩形中而没有重叠相关的知识,希望对你有一定的参考价值。
我想在给定大小的矩形中放置N个具有给定公共半径的圆,以使圆形在Python中不重叠。我当前的解决方案是:
1)创建空间中每个点的集合,并从中删除将在生成下一个圆之前引起重叠的点(但是,矩形较大时,它很慢)。
2)从一组不重叠的点(例如,每2r + const)绘制球的中心(但此处的位置不够随机)。
您还有其他更有效的想法吗?
答案
所以2D封装中最有效的填充是六角形填充,您只需对程序进行硬编码即可将其填充为圆形
在此处了解更多信息:https://en.wikipedia.org/wiki/Circle_packing
另一答案
您可以将生成的圆的坐标存储在集合中,然后在生成新的随机坐标后,您可以检查生成的圆是否会与其他圆重叠为此,您需要检查条件:-SET中i的距离(i,P)> = 2R我在SET中的位置R是圆半径P是随机生成的点
以上是关于随机将N个圆放置在矩形中而没有重叠的主要内容,如果未能解决你的问题,请参考以下文章