2.实验内容:绘制 Koch 曲线、Sierpinski 三角形和树木花草图形,观察这些图形的局部和原
3.实验思路:利用函数反复调用自己来模拟分形构造时的迭代过程,当迭代指标n 为 0 时运
function koch(p,q,n) % p、q 分别为 koch 曲线的始末复坐标,n 为迭代次数
plot([real(p);real(q)],[imag(p);imag(q)]);
hold on;
a=(2*p+q)/3; % 求出从 p 到 q 的 1/3 处端点 a
b=(p+2*q)/3; % 求出从 p 到 q 的 2/3 处端点 b
c=a+(b-a)*exp(pi*i/3);%
koch(p, a, n-1); % 对 pa 线段做下一回合
koch(a, c, n-1); % 对 ac 线段做下一回合
koch(c, b, n-1); % 对 cb 线段做下一回合
koch(b, q, n-1); % 对 bq 线段做下一回合
end
function sierpinski(a,b,c,n) % a、b、c 为三角形顶点,n 为迭代次数
fill([real(a) real(b) real(c)],[imag(a) imag(b) imag(c)],'b');% 填充三角形 abc
sierpinski(a,b1,c1,n-1);
sierpinski(a1,b,c1,n-1);
sierpinski(a1,b1,c,n-1);
end
function grasstree(p,q,n) % p、q 分别为树木花草始末复坐标,n 为迭代次数