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にして描いた図形は、
となる。
尚、このプログラムのソースファイルは ここ にある。