用matlab生成满足一定间隔条件下的二维均匀分布。
要在一个15*15的矩形内生成一定数量(比如100个)的小圆,每个小圆半径为0.25,要求圆心尽量在二维空间内均匀分布,且每个小圆之间不重叠。有没有高手知道怎么实现?求算...
要在一个15*15的矩形内生成一定数量(比如100个)的小圆,每个小圆半径为0.25,要求圆心尽量在二维空间内均匀分布,且每个小圆之间不重叠。
有没有高手知道怎么实现?求算法,或者思路。 展开
有没有高手知道怎么实现?求算法,或者思路。 展开
1个回答
展开全部
程序如下
%% 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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询