用matlab生成满足一定间隔条件下的二维均匀分布.要在一个15*15的矩形内生成一定数量(比如100个)的小圆,每个小圆半径为0.25,要求圆心尽量在二维空间内均匀分布,且每个小圆之间不重叠.有
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/15 12:24:07
用matlab生成满足一定间隔条件下的二维均匀分布.要在一个15*15的矩形内生成一定数量(比如100个)的小圆,每个小圆半径为0.25,要求圆心尽量在二维空间内均匀分布,且每个小圆之间不重叠.有
用matlab生成满足一定间隔条件下的二维均匀分布.
要在一个15*15的矩形内生成一定数量(比如100个)的小圆,每个小圆半径为0.25,要求圆心尽量在二维空间内均匀分布,且每个小圆之间不重叠.
有没有高手知道怎么实现?求算法,或者思路.
用matlab生成满足一定间隔条件下的二维均匀分布.要在一个15*15的矩形内生成一定数量(比如100个)的小圆,每个小圆半径为0.25,要求圆心尽量在二维空间内均匀分布,且每个小圆之间不重叠.有
程序如下
%% 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]);