Koch曲线
Lecy曲线
分形树
用IFS算法画Sierpinski三角形
用IFS算法画Julia集
逃逸时间法画Sierpinski垫片
元胞自动机算法画Sierpinski三角形
IFS算法画Helix曲线
Koch曲线
1 % koch.m
2 function koch(a1,b1,a2,b2,n)
3 % a1,b1,a2,b2为初始线段两端点的坐标,n为迭代次数
4 % 第i‐1次迭代时由各条线段产生的新四条线段的五点横,纵坐标存储在数组
5 [A,B]=sub_koch1(a1,b1,a2,b2);
6 for i=1:n
7 for j=1:length(A)/5;
8 w = sub_koch2(A(1+5*(j‐1):5*j),B(1+5*(j‐1):5*j));
9 for k=1:4
10 [AA(5*4*(j‐1)+5*(k‐1)+1:5*4*(j‐1)+5*(k‐1)+5),BB(5*4*(j‐1)+5*(k‐
1)+1:5*4*(j‐1)+5*(k‐1)+5)]=sub_koch1(w(k,1),w(k,2),w(k,3),w(k,4));
11 end
12 end
13 A=AA;
14 B=BB;
15 end
16 plot(A,B)
17 hold on
18 axis equal
19
20 % 由以(ax,ay),(bx,by)为端点的线段生成新的中间三点坐标并把这五点横,纵坐标依次
分别存储在数组A,B中
21 function [A,B]=sub_koch1(ax,ay,bx,by)
22 cx = ax+(bx‐ax)/3;
23 cy = ay+(by‐ay)/3;
24 ex = bx‐(bx‐ax)/3;
25 ey = by‐(by‐ay)/3;
26 L = sqrt((ex‐cx).^2+(ey‐cy).^2);
27 alpha=atan((ey‐cy)./(ex‐cx));
28 if(ex‐cx)
29 alpha=alpha+pi;
30 end
31 dx=cx+cos(alpha+pi/3)*L;
32 dy=cy+sin(alpha+pi/3)*L;
33 A=[ax,cx,dx,ex,bx];
34 B=[ay,cy,dy,ey,by];
35
36 % 把由函数sub_koch1生成的五个点横,纵坐标A,B顺次划分为四组,分别对应四条折线
段中每条线段两端点的坐标,并依次分别存储在4*4阶矩阵k中,k中第i(i=1,2,3,4)行数字代
表第i条线段两端点的坐标
37 function w=sub_koch2(A,B)
38 a11=A(1);b11=B(1);
39 a12=A(2);b12=B(2);
40 a21=A(2);b21=B(2);
41 a22=A(3);b22=B(3);
42 a31=A(3);b31=B(3);
43 a32=A(4);b32=B(4);
44 a41=A(4);b41=B(4);
45 a42=A(5);b42=B(5);
46 w=[a11,b11,a12,b12;a21,b21 a22 b22;a31,b31,a32,b32;a41,b41,a42,b42]
koch(0,0,9,0,3):
Lecy曲线
1 % levy.m
2 function levy(n)
3 % n为levy曲线的迭代次数
4 % x1,y1,x2,y2为初始线段两端点坐标
5 x1=0;y1=0;
6 x2=1;y2=0;
7 % 第i‐1次迭代时由各条线段产生的两条线段的三个端点的横,纵坐标存储在数组中
8 [X,Y]=levy1(x1,y1,x2,y2);
9 for i=