数学建模社区-数学中国

标题: 元胞自动机——渗流集群 [打印本页]

作者: 森之张卫东    时间: 2015-8-17 19:40
标题: 元胞自动机——渗流集群
  1. <p>%渗流集群
  2. %Percolation Cluster
  3. clc
  4. clear
  5. close all
  6. threshold=0.63;
  7. %最初的图形是由图形操作决定的,以下程序设定坐
  8. %标系为一个固定的尺寸,在坐标系里写入文本,然后
  9. %获得并返回坐标系内容,并用getframe函数把它们
  10. %写入一个矩阵。
  11. ax=axes( 'units','pixels','position',[1,1,1050,400],'color','k' );%1050,400画布大小!
  12. text( 'units','pixels', 'position',[50 270 0],...
  13.     'string','ZhangWeiDong','color','w','fontname','helvetica',...
  14.     'fontsize',50 )
  15. text( 'units','pixels', 'position',[120 150 0],...
  16.     'string','1302034220','color','w','fontname','helvetica',...
  17.     'fontsize',50 )
  18. initial=getframe( gca );</p><p>[a,b,c]=size(initial.cdata);
  19. z=zeros(a,b);
  20. cells=double( initial.cdata(:,:,1)==255 );
  21. visit=z;
  22. sum=z;
  23. imh=image( cat(3,z,cells,z) );
  24. set( imh,'erasemode','none' )</p><p>for i=1:100
  25.     sum(2:a-1,2:b-1)=cells(2:a-1,1:b-2)+cells(2:a-1,3:b)+...
  26.                              cells(1:a-2,2:b-1)+cells(3:a,2:b-1)+...
  27.                              cells(1:a-2,1:b-2)+cells(1:a-2,3:b)+...
  28.                              cells(3:a,1:b-2)+cells(3:a,3:b);
  29.     pick=rand(a,b);
  30.     %edge only
  31.     cells=cells | ( (sum>=1)&(pick>=threshold)&(visit==0) );
  32.     visit=(sum>=1);
  33.    
  34.     set( imh,'cdata',cat(3,z,cells,z) )
  35.     drawnow
  36.     %pause(0.5)
  37. end</p><p>return
  38. figure(2)
  39. image( cat(3,z,cells,z) )</p><p><p><p><p><p><p>
  40. </p>
复制代码

渗流集群——结果图.PNG (44.4 KB, 下载次数: 173)

渗流集群——结果图.PNG






欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5