数学实验--
制作人:陈震
贵州师范大学数学与计算机科学学院
分形图形的计算机生成
在我们生活的大千世界里,除了有象房屋建筑、公路桥梁、汽车、飞机及各种劳动工具等这些人造的形态规则的几何形体之外,更广泛充满了诸如花草树木、山川河流、烟雾云彩等形态极不规则的几何形体。如何描述这些复杂的自然现象?如何分析其内在的机理?科学家和艺术家一直在苦苦追寻这些问题的答案,力图从传统的欧几里得几何体系中解放出来。
二十世纪七十年代,美国科学家曼德勃罗(B.
Mandelbrot)创立了以“不规则”几何形态为研究对象的几何学——分形几何
尽管分形几何的提出只有三十年左右的时间,但它已经在自然科学的各个领域如数学、物理、化学、地理、天文、材料、生命乃至经济、社会、艺术等极其广泛的领域有着广泛的应用。
这里以迭代的观点介绍分形的基本特性以及生成分形图形的基本方法。
生成元产生的分形图形
由IFS(迭代函数系)所生成的分形图形
最终图形 F 都是按照一定的规则 R 通过
对初始图形 F0 不断修改得到的。
最具代表性的图形有Koch雪花曲线、分形树
一、生成元产生的分形图形
由生成元产生的分形是一种规则分形,是数学家按一定规则构造出来的,相当于物理中的模型。这类图形的构造方式都有一个共同的特点:
● Koch雪花曲线:
给定一条直线段F0,将该直线三等分,并将中间的一段用以该线段为边的等边三角形的另外两边代替,得到图形F1,然后,再对图形F1中的每一小段都按上述方式修改,以至无穷。则最后得到的极限曲线
即是所谓的Koch曲线。
Koch曲线的修改规则R是将每一条直线段F0用一条折线F1替代,称F1为生成元。
clear
clf
new=[1 0];
kmax=3;
for k=1:kmax
old=new;
n=length(old)-1;
for m=0:n-1;
diff=(old(m+2)-old(m+1))/3;
生成Koch曲线的Matlab程序
new(4*m+1)=old(m+1);
new(4*m+2)=old(m+1)+diff;
new(4*m+3)=new(4*m+2)+diff*((1-sqrt(3)*i)/2);
new(4*m+4)=old(m+1)+2*diff;
end
new(4*n+1)=old(n+1);
new
plot(new)
axis equal
end
●分形树
分形树的生成方法是:
将一条线段三等分,在等
分点上各画一条长度为原
线段长度三分之一的线段,
该线段与元线段成固定的
夹角。
clear
clf
theta=pi/6;
u=[0 0;0 1];
rov1=[cos(theta),-sin(theta);sin(theta) cos(theta)];
rov2=rov1';
kmax=3;
for n=1:kmax
uuu=[];
for i=0:length(u)/2-1
p1=(u(2*i+1,:)*2+u(2*i+2,:))/3;
p2=(u(2*i+1,:)+u(2*i+2,:)*2)/3;
生成分形树的Matlab程序
matlab分形 来自淘豆网m.daumloan.com转载请标明出处.