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

📄 recurs_star7.m

📁 包括Koch曲线、Levy 曲线、分形树、Sierpinski三角形
💻 M
字号:
function [z,A]=recurs_star7(z,A,n); 
% 星形为构成元素的递归图形 
% Example: 
%     [z,A]=recurs_star7(0,-pi/2,1); 
%  算法参见: 
%  http://graphics.shu.edu.cn/course/fractal/ch5-5.htm 
if nargin==0;
    z=0;A=-pi/2;n=1;
end
hold on;
nr=7;   % 旋转对称次数 
N=5;    % 递归次数 
sc=0.3; % scale缩小率 
kr=4; 
ang=pi/nr/2; 
rand('state',n+10) ;
C=rand(1,3); 
if n<N; 
   r=sc^n; 
   [z,A,P]=star7(z,A,r); 
   fill(real(P),imag(P),C); 
   if abs(n-1)<1e-5; 
       m=nr; 
       k=0; 
   else 
       m=nr-1; 
       k=1; 
   end 
   for p=1:m; 
       A=A+pi; 
       A=A+(p-1+k)*kr*ang; 
       z=z+r*(1+sc)*exp(i*A); 
       [z,A]=recurs_star7(z,A,n+1); 
       A=A+pi; 
       z=z+r*(1+sc)*exp(i*A); 
       A=A-(p-1+k)*kr*ang; 
   end 
end 
axis equal ;
% figure;fill(real(P),imag(P),'b') 


function [z,A,P]=star7(z,A,r); 
% 星形描画函数 
nr=7; 
ang=pi/nr/2; 
ks=2*cos(pi/nr/2); 
A=A+pi; 
z=z+r*exp(i*A); 
A=A+pi-ang; 
P=z; 
for k=1:nr; 
   plot([z,z+r*ks*exp(i*A)]); 
   z=z+r*ks*exp(i*A); 
   P=[P,z]; 
   A=A+pi-2*ang; 
end 
A=A+ang; 
z=z+r*exp(i*A);

⌨️ 快捷键说明

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