用matlab生成满足一定间隔条件下的二维均匀分布。

要在一个15*15的矩形内生成一定数量(比如100个)的小圆,每个小圆半径为0.25,要求圆心尽量在二维空间内均匀分布,且每个小圆之间不重叠。有没有高手知道怎么实现?求算... 要在一个15*15的矩形内生成一定数量(比如100个)的小圆,每个小圆半径为0.25,要求圆心尽量在二维空间内均匀分布,且每个小圆之间不重叠。
有没有高手知道怎么实现?求算法,或者思路。
展开
 我来答
百度网友a536a36
2012-07-26 · TA获得超过4480个赞
知道小有建树答主
回答量:534
采纳率:100%
帮助的人:282万
展开全部

程序如下

%% draw the uniform distributed circle

circlenum=1;

N=100;

centre=15*rand([1,2]);

while circlenum<100

    temp=15*rand([1,2]);

    distance=sqrt((temp(1)-centre(:,1)).^2+(temp(2)-centre(:,2)).^2);

    if sum(distance<=(0.25*2))==0

        centre=[centre;temp];

        circlenum=circlenum+1;

    end

end

angle = linspace(pi/4,9*pi/4,N);

x = cos(angle) * 0.25;

y = sin(angle) * 0.25;

figure; hold on;

for index=1:circlenum

    plot(x+centre(index,1),y+centre(index,2));   

end

axis([-1,16,-1,16]);

% QQ1837329143

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式