NetLogoプログラミング(その5:Koch snowflake)

正三角形の各辺を Koch 曲線で再帰的に描いてできる図形が Koch snowflake である。次は1次と2次の Koch snowflake である。


koch snowflakeを描くプログラムは、次のように Koch 曲線を描く手続きを利用すればよい。

globals [len]

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

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

to snowflake [:x]   repeat 3 [koch :x rt 120] 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にして描いた図形は、


となる。

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


哲猫