Notes for Lecture 7


Recursion and Fractals


Fractals 分形

定义

  • 分形是一种具有自相似的现象,在分形中,每一个组成部分都在特征上与整体相似,仅仅是规模更小而已

特殊分形实例

  • 科赫雪花三角形

  • 从一个正三角形开始,把每条边分成三等份,然后以各边的中间长度为底边。分别向外作正三角形,再把“底边”线段抹掉,反复进行这一过程,就会得到一个“雪花”样子的曲线。这曲线叫做科赫曲线或雪花曲线。

  • 谢尔宾斯基三角形

  • 1.取一个实心的三角形。(多数使用等边三角形)
    2.沿三边中点的连线,将它分成四个小三角形。
    3.去掉中间的那一个小三角形。
    4.对其余三个实心小三角形重复1

  • Mandelbrot集合

编码

1
2
3

#include"gwindow.h

Canter set 康托尔集

三分康托集的构造过程是:

  1. 把线段平均分为三段,去掉中间的 1/3 部分段,而只剩下两边部分段
  2. 再将剩下的两边部分段各自平均分为三段,同样去掉中间的区间段,这时剩下四段部分段
  3. 重复删除每个小段中间的 1/3 段。如此不断的分割下去, 最后剩下的各个小段就构成了三分康托集。

1
2
3
4
5
6
7
8
9
10
11
12
void cantorSet(GWindow& window,int x,int y,int length,int levels) {

if(levels>0) {

window.drawLine(x,y,x+length,y);
cantorSet(window,x,y+20,length/3,levels-1);
cantorSet(window,x+2*length/3,y+20,length/3,levels-1);

}

}