NetLogoプログラミング(その4:Koch 曲線)

Koch 曲線とは、線分を3等分し、分割した2点を頂点とする正3角形の2辺の作図(下図:1次の Koch 曲線)を無限に繰り返すことで得られる再帰図形である。


上図の各辺で、同様に正3角形を描くと次の図形(2次の Koch 曲線) が得られる。


koch 曲線を描くプログラムは

globals [len]

to setup
  ca
  crt 1
  ask turtles [setxy -15 0 set heading 90 go]
end

to go
  set len 30 / ((2 + 2 * cos 60 ) ^ :num )
  koch :num
end

to koch [:lv]
  pd
  ifelse :lv < 1 [fd len stop ][
   koch :lv - 1
   lt 60
   koch :lv - 1
   rt 120
   koch :lv - 1
   lt 60
   koch :lv - 1
  ]
end

である。尚、再帰の深さ(次数)を示す変数 :num interface 画面上から Slider を使って指定している。

再帰の深さ(次数)を8にして描いた図形は、


となる。

尚、このプログラムのソースファイルは ここ にある。


哲猫