当前位置:
文档之家› MATLAB生成分形树ppt课件
MATLAB生成分形树ppt课件
5
分形树
MATLAB程序: • p1=p(j,:);p2=p(j+1,:);
1
p2
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0 -0.5 -0.4 -0.3 -0.2 -0.1
0
0.1
0.2
0.3
0.4
0.5
p1
6
分形树
MATLAB程序:
• d=(p2-p1)/3; • r(i,:)=p1;i=i+1; %矩阵r的第一行存储点p1
MATLAB程序: •p=[0 0;10 0];n=2; •A=[cos(pi/4) -sin(pi/4);sin(pi/4) cos(pi/4)]; •for k=1:10 • i=1; • for j=1:2:n • p1=p(j,:);p2=p(j+1,:); • d=(p2-p1)*sqrt(2)/2; • r(i,:)=p1;i=i+1; • q1=p1+d*A'; •
• q1=p1+d;
1
p2
0.9
0.8 0.7
0.6
0.5
0.4
q1
0.3
0.2
0.1
0
-0.5 -0.4 -0.3 -0.2 -0.1
0
0.1
0.2
0.3
0.4
0.5
p1
7
分形树
MATLAB程序:
• r(i,:)=q1;i=i+1; %矩阵r的第二行存储点q1
• r(i,:)=q1;i=i+1; %矩阵r的第三行存储点q1
11
分形树
MATLAB程序: •p=r; %更新节点矩阵 • n=5*n; %更新节点数 •end •axis equal •axis off
12
分形树
13
levy曲线
主型:
如图所示,levy曲线的主型是以单位长线段为斜边的等腰直 角三角形去掉斜边后留下的两条直角边且向上凸起。
14
levy曲线
分形图形的生成元生成
1
分形图形的生成元生成
由生成元产生的分形是一种规则分形,是数 学家按照一定规则构造出来的,相当于物理学 的模型。构造特点:最终图形是按照一定规则 R对初始F0不断修改得到的。
2
分形树
生成方法:
选取一条直线段F0,将该线段三等分,在等分点上各画一 条长度为原线段长度三分之一的线段,并与原线段成固定夹角, 得到图形F1。
• q4=q3+d*A;
1 0.9
p2 q4
0.8
0.7
q2 q3
0.6
0.5
0.4
q1
0.3
0.2
0.1
0 -0.5 -0.4 -0.3 -0.2 -0.1
0
0.1
0.2
0.3
0.4
0.5
p1
10
分形树
MATLAB程序: • r(i,:)=q4;i=i+1; %矩阵r的第八行存储点q4 • r(i,:)=q3;i=i+1; %矩阵r的第九行存储点q3 • r(i,:)=p2;i=i+1; %矩阵r的第十行存储点p2 • xy=[q1;q2]; • plot(xy(:,1),xy(:,2),‘k’); %联结q1 q2 •Hold on;%图形保持 • xy=[q3;q4]; • plot(xy(:,1),xy(:,2),'k'); %联结q3 q4 •Hold on;%图形保持 • end
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
-0.5 -0.4 -0.3 -0.2 -0.1
0
0.1
0.2
0.3
0.4
0.5
3
分形树
生成方法: 再将F1的每一段都按上述方法修改,直至无穷,则最后得到
的极限图象,称为分形树。
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
-0.5
16
•axis equal
levy曲线
17
• q3=p1+2*d;
•
1
p2
0.9
0.8
0.7 0.6
q2 q30.5来自0.4q10.3
0.2
0.1
0
-0.5 -0.4 -0.3 -0.2 -0.1
0
0.1
0.2
0.3
0.4
0.5
p1
9
分形树
MATLAB程序:
• r(i,:)=q3;i=i+1; %矩阵r的第六行存储点q3
• r(i,:)=q3;i=i+1; %矩阵r的第七行存储点q3
• q2=q1+d*A';
1
p2
0.9
0.8
0.7
q2
0.6
0.5
0.4
q1
0.3
0.2
0.1
0 -0.5 -0.4 -0.3 -0.2 -0.1
0
0.1
0.2
0.3
0.4
0.5
p1
8
分形树
MATLAB程序:
• r(i,:)=q2;i=i+1; %矩阵r的第四行存储点q2
• r(i,:)=q1;i=i+1; %矩阵r的第五行存储点q1
15
levy曲线
MATLAB程序: •r(i,:)=q1;i=i+1; • r(i,:)=q1;i=i+1; • r(i,:)=p2;i=i+1; • end •n=n*2;p=r; •end •for m=1:2:n • plot([p(m,1) p(m+1,1)],[p(m,2) p(m+1,2)],'k'); • hold on; •end
-0.4
-0.3
-0.2
-0.1
0
0.1
0.2
0.3
0.4
0.5
4
分形树
MATLAB程序:
• p=[0 0;0 10]; n=2; %初始节点为2
•plot(p(:,1),p(:,2), 'k'); •Hold on;%图形保持 •A=[cos(pi/6) -sin(pi/6);sin(pi/6) cos(pi/6)]; •for k=1:4 • i=1; • for j=1:2:n • p1=p(j,:);p2=p(j+1,:);