• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

MATLAB之画确定区域内不重合的随机圆

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

程序要求:在确定区域内,画互不重合的圆。

知识点:
(1)A=p'; 转置运算
(2)ones(a,b)产生a行b列全1数组
(3)rand(a,b)产生a行b列个0~1之间的随机数
(4)函数简介:输入参数:N为圆的个数,D为圆的半径,K为两圆之间的距离(D的倍数);输出为各圆心的坐标;并作图

程序:

  function [xdata,ydata] = dataH(N,D,K)
%N为圆的个数,D为圆的半径,K为两圆之间的距离(D的倍数)
b=D*ones(1,N);                            %生成半径为D的数组,100个
S=[150,100];                              %**区域大小**
p=b(1)+(S-2*b(1)).*rand(1,2);             %产生一个随机点
A=p';                                     %第一点坐标记录进矩阵A中,转置运算
t=0:360;
plot([0 400 400 0 0],[0 0 400 400 0]);     %画区域方框
hold on                                  
for ii=2:N
    p=b(ii)+(S-2*b(ii)).*rand(1,2);   %产生一个新随机点,rand(1,2)表示产生一行两列(0,1)之间的随机数
    while any((A(1,:)-p(1)).^2+(A(2,:)-p(2)).^2<K*K*D*D)   %距离判断
          p=b(ii)+(S-2*b(ii)).*rand(1,2);
    end
    A = [A,p'];                                            %保存新的点到矩阵A
    patch(p(1)+b(ii)*cosd(t),p(2)+b(ii)*sind(t),'r');      %填充一个圆
end
hold off
axis equal
axis([0 150 0 100]);
A=[b;A];
xdata = A(2,:);
ydata =A(3,:); 
 end

运行结果:


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap