浙江师范大学论坛's Archiver

异度空间 发表于 2007-11-6 07:55

如何绘制分形曲线

绘制Koch分形曲线

从一条直线段开始,将线段中间的三分之一部分用一个等边三角形的两边代替,形成山丘形图形如下:

(缺)

在新的图形中,又将图中每一直线段中间的三分之一部分都用一个等边三角形的两条边代替,再次形成新的图形如此迭代,形成koch分形曲线。(缺图)




算法分析:由一条线段产生四条线段,故算法中由n条线段迭代一次后将产生4n条线段。算法针对每一条线段逐步进行,将计算新的三个点。第一个点位于线段三分之一处,第三个点位于线段三分之二处,第二个点以第一个点为轴心,将第一和第三个点形成的向量正向旋转600而得。正向旋转由正交矩阵


实现。

MATLAB程序如下

clear

p=[0 0;10 0];n=1;

A=[cos(pi/3) -sin(pi/3);sin(pi/3) cos(pi/3)];

for k=1:5

   j=0;

   for i=1:n

      q1=p(i,:);

      q2=p(i+1,:);

      d=(q2-q1)/3;

      j=j+1;r(j,:)=q1;

      j=j+1;r(j,:)=q1+d;

      j=j+1;r(j,:)=q1+d+d*A';

      j=j+1;r(j,:)=q1+2*d;

   end

   n=4*n;clear p

   p=[r;q2];

end

plot(p(:,1),p(:,2))

页: [1]

网站web安全
检测认证
公共信息网络
安全备案
电子公告服务
备案网站
信息网络安全
报警服务
网络不良信息
举报中心

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.