分形吧matlab,使用matlab画分形图.pdf

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=

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值