コッホ曲線

PostScriptとSchemeでコッホ雪片を書いた。

(define (Koch n)
	(if (= n 0)
	    '(F L F L F)
	    (fold-right (lambda (x y)
			  (cond ((eq? x 'F) (append '(F R F L F R F) y))
			        (else (cons x y))))
			'()
			(Koch (- n 1)))))

こんな感じで再帰的にコッホ曲線を表現する。そして、F を "0 10 rlineto"、R を "-60 rotate"、L を "120 rotate"などと変換すればコッホ曲線のパスができる。

追記:コッホ曲線の書き方で検索してくる人のために

F:前へ進む
R:右に曲がる
L:左に曲がる
として
FはFLFRFLFに変化させる
RはRのまま
LはLのまま
というルールを最初の"F"にどんどん作用させていけばコッホ曲線を描く命令が得られます。