24小时热门版块排行榜    

CyRhmU.jpeg
查看: 3204  |  回复: 2

20092223

新虫 (初入文坛)

[求助] 利用matlab生成圆心随机分布,但圆不重叠的随机圆

我想用Matlab实现一个画圆的小程序:
(1)圆心坐标随机生成,圆的半径从最大值到最小值随机分布;
(2)圆在一定边界之内,各圆之间不能重叠或者包含;
(3)任意分布的圆外边包着一层薄皮,圆之间不可以侵入,薄皮彼此可以侵入。
各位matlab大神可以不可帮忙编出这个程序啊
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

musclecon

银虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
这个不难啊,用matlab或者fortran都可以。
以前我用的fortran编写的,按几个顺序走
一是通过随机数生成你要求的圆的数量;
二是对生成的圆按粒径大小进行排序(就是做一个循环,循环里边比较圆的大小后面圆的和第一个比,大了就排到前边);
三是对圆进行投放,注意控制边界重叠问题,通过任意两个圆的圆心坐标距离要大于半径和;如果要在圆的外面包一层“薄皮”的话,圆心距离要大于半径和+2个薄皮厚度(或者自己设置);
四是“薄皮”的生成,在前边每个圆生成的时候,只需要在圆外面再多生成一个同心圆就可以了,后边的排序也可按照外圈的圆来控制
2楼2013-05-27 17:52:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

20092223

新虫 (初入文坛)

我没有学过这两个软件,您可以帮我用MATLAB编一个符合这个条件的程序吗

[ 发自手机版 http://muchong.com/3g ]
3楼2013-05-28 09:05:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 20092223 的主题更新
信息提示
请填处理意见