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

📄 recurs_polygon3.m

📁 包括Koch曲线、Levy 曲线、分形树、Sierpinski三角形
💻 M
字号:
function [z,A]=recurs_polygon3(z,A,n); 
% 正多边形为构成元素的递归图形 
% Example: 
%    [z,A]=recurs_polygon3(0,-pi/2,1); 
if nargin==0;
    z=0;A=-pi/2;n=1;
end
axis off;
nr=3;  % 旋转对称次数 
N=7;  % 递归次数 
sc=0.63; % 缩小比例 
ang=2*pi/nr; 
hold on;
warning off ;
rand('state',n) ;
C=rand(1,3); 
if n<N ;
   r=sc^n; 
   [z,A,P]=polygonn(z,A,r); 
   fill(real(P),imag(P),C); 
   if abs(1-n)<1e-5; 
       m=nr; 
       k=0; 
   else 
       m=nr-1; 
       k=1; 
   end 
   for p=1:m; 
       A=A+pi; 
       A=A+(p+k-1)*ang; 
       z=z+(r*(1+sc))*exp(i*A); 
       [z,A]=recurs_polygon3(z,A,n+1); 
       A=A+pi; 
       z=z+r*(1+sc)*exp(i*A); 
       A=A-(p+k-1)*ang; 
   end 
end 
axis equal 
function [z,A,P]=polygonn(z,A,r); 
nr=3;  % 旋转对称次数 
ks=sin(pi/nr); 
ang=2*pi/nr; 

A=A+pi; 
z=z+r*exp(i*A); 
A=A+pi/2+ang/2; 
P=z; 
for k=1:nr 
%    plot([z,z+2*r*ks*exp(i*A)]); 
   z=z+2*r*ks*exp(i*A); 
   P=[P,z]; 
   A=A+ang;     
end 
A=A+pi/2-ang/2; 
z=z+r*exp(i*A);

⌨️ 快捷键说明

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