⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dla8.m

📁 通过DLA算法计算产生分形
💻 M
字号:
R=80;
Table=zeros(R,R);
Table(R/2,R/2)=1;
N=500;
Step=1;
left=0;right=0;up=0;down=0;
p=1;
for i=1:1:N
    theta=rand(1)*2*pi;
    Xt=R/2+floor((R-2)/2*cos(theta));
    Yt=R/2+floor((R-2)/2*sin(theta));
    
    judge=0;
    while judge==0
        
        if rand(1)<=0.5 
             if  rand(1)<=0.5 & right==0
                 Xt=Xt+Step;
             else 
                 if left==0
                    Xt=Xt-Step;
                 end
             end     
        else
            if rand(1)<=0.5 & up==0
                Yt=Yt+Step;
            else
                if down==0
                   Yt=Yt-Step;
                end
            end
        end

       if Xt>R
            Xt=Xt-R;
        elseif Xt<=0
             Xt=Xt+R;
        elseif Yt<=0
            Yt=Yt+R;
        elseif Yt>R
            Yt=Yt-R;
        else
        end
        
        left=0;
        right=0;
        up=0;
        down=0;
         P=0;
         if  Xt+1<=R
             if Table(Xt+1,Yt)~=0
                P=p;
                right=1;
             end
         end
         if  Xt-1>=1
             if Table(Xt-1,Yt)~=0
                 P=p;
                 left=1;
             end
         end
         if  Yt+1<=R
             if Table(Xt,Yt+1)~=0
                P=p;
                up=1;
             end
         end
         if  Yt-1>=1
             if Table(Xt,Yt-1)~=0
                 P=p;
                 down=1;
             end
         end
         
        if rand(1)<=P
            Table(Xt,Yt)=1;
            judge=1;
            break;
        end
         
        
    end
end
Count=1;
for i=1:1:R
    for j=1:1:R
        if Table(i,j)==1
            Count=Count+1;
            axis([1 R 1 R]);
            figure(1);
            plot(i,j,'.');
            hold on;
        end
    end
end
Count;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -