好文档 - 专业文书写作范文服务资料分享网站

分形几何中一些经典图形的Matlab画法说课材料 

天下 分享 时间: 加入收藏 我要投稿 点赞

分形几何中一些经典图形的Matlab画法

精品资料

分形几何中一些经典图形的Matlab画法

(1)Koch曲线程序koch.m

function koch(a1,b1,a2,b2,n) %koch(0,0,9,0,3)

?,b1,a2,b2为初始线段两端点坐标,n为迭代次数 a1=0;b1=0;a2=9;b2=0;n=3;

%第i-1次迭代时由各条线段产生的新四条线段的五点横、纵坐标存储在数组A、B中

[A,B]=sub_koch1(a1,b1,a2,b2); for i=1:n

for j=1:length(A)/5;

w=sub_koch2(A(1+5*(j-1):5*j),B(1+5*(j-1):5*j)); for k=1:4

[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)); end end A=AA; B=BB; end

plot(A,B) hold on axis equal

%由以(ax,ay),(bx,by)为端点的线段生成新的中间三点坐标并把这五点横、纵坐标依次分别存%储在数组A,B中 function [A,B]=sub_koch1(ax,ay,bx,by) cx=ax+(bx-ax)/3; cy=ay+(by-ay)/3; ex=bx-(bx-ax)/3; ey=by-(by-ay)/3;

L=sqrt((ex-cx).^2+(ey-cy).^2); alpha=atan((ey-cy)./(ex-cx)); if (ex-cx)<0

alpha=alpha+pi; end

仅供学习与交流,如有侵权请联系网站删除 谢谢2

精品资料

dx=cx+cos(alpha+pi/3)*L; dy=cy+sin(alpha+pi/3)*L; A=[ax,cx,dx,ex,bx]; B=[ay,cy,dy,ey,by];

%把由函数sub_koch1生成的五点横、纵坐标A,B顺次划分为四组,分别对应四条折线段中

%每条线段两端点的坐标,并依次分别存储在4*4阶矩阵k中,k中第i(i=1,2,3,4)行数字代表第%i条线段两端点的坐标

function w=sub_koch2(A,B) a11=A(1);b11=B(1); a12=A(2);b12=B(2); a21=A(2);b21=B(2); a22=A(3);b22=B(3); a31=A(3);b31=B(3); a32=A(4);b32=B(4); a41=A(4);b41=B(4); a42=A(5);b42=B(5);

w=[a11,b11,a12,b12;a21,b21,a22,b22;a31,b31,a32,b32;a41,b41,a42,b42];

图1 Von Koch曲线

仅供学习与交流,如有侵权请联系网站删除 谢谢3

精品资料

(2)Levy 曲线程序levy.m

function levy(n)

% levy(16),n为levy曲线迭代次数

%x1,y1,x2,y2为初始线段两端点坐标,nn为迭代次数 n=16;

x1=0;y1=0; x2=1;y2=0;

%第i-1次迭代时由各条线段产生的新两条线段的三端点横、纵坐标存储在数组X、Y中

[X,Y]=levy1(x1,y1,x2,y2); for i=1:n

for j=1:length(X)/3

w=levy2(X(1+3*(j-1):3*j),Y(1+3*(j-1):3*j));

[XX(3*2*(j-1)+1:3*2*(j-1)+3),YY(3*2*(j-1)+1:3*2*(j-1)+3)]=levy1(w(1,1),w(1,2),w(1,3),w(1,4));

[XX(3*2*(j-1)+3+1:3*2*(j-1)+3+3),YY(3*2*(j-1)+3+1:3*2*(j-1)+3+3)]=levy1(w(2,1),w(2,2),w(2,3),w(2,4)); end X=XX; Y=YY; end

plot(X,Y) hold on axis equal

%由以(x1,y1),(x2,y2)为端点的线段生成新的中间点坐标并把(x1,y1),(x2,y2)连同新点横、纵坐%标依次分别存储在数组X,Y中 function [X,Y]=levy1(x1,y1,x2,y2) x3=1/2*(x1+x2+y1-y2); y3=1/2*(-x1+x2+y1+y2); X=[x1,x3,x2]; Y=[y1,y3,y2];

仅供学习与交流,如有侵权请联系网站删除 谢谢4

精品资料

%把由函数levy1生成的三点横、纵坐标X,Y顺次划分为两组,分别对应两条折线段中每条线%段两端点的坐标,并依次分别存储在2*4阶矩阵w中,w中第i(i=1,2)行数字代表第i条线段%两端点的坐标 function w=levy2(X,Y) a11=X(1);b11=Y(1); a12=X(2);b12=Y(2); a21=X(2);b21=Y(2); a22=X(3);b22=Y(3);

w=[a11,b11,a12,b12;a21,b21,a22,b22];

图2 Levy 曲线

(3) 分形树程序tree.h

function tree(n,a,b)

% tree(8,pi/8,pi/8),n为分形树迭代次数 %a,b为分枝与竖直方向夹角

%x1,y1,x2,y2为初始线段两端点坐标,nn为迭代次数 n=8;a=pi/8;b=pi/8;

仅供学习与交流,如有侵权请联系网站删除 谢谢5

分形几何中一些经典图形的Matlab画法说课材料 

分形几何中一些经典图形的Matlab画法精品资料分形几何中一些经典图形的Matlab画法(1)Koch曲线程序koch.mfunctionkoch(a1,b1,a2,b2,n)%koch(0,0,9,0,3)?,b1,a2,b2为初始线段两端点坐标,n为迭代次数a1=
推荐度:
点击下载文档文档为doc格式
5svso81d9i9kfa2517te4mn0g1mmhw00jks
领取福利

微信扫码领取福利

微信扫码分享