私はコッホスノーフレークのウィキペディアページ(ここ)を見ていましたが、すべての例がロゴ/タートルスタイルであることに悩まされていました。だから私はリストや座標を返す自分のものを作ることに着手しました。
私の実装はPythonであり、基本的にpython turtleの実装を取り除いたが、turtle固有のものを基本的なtrigに置き換えた。その結果、いくつかの醜いコードが作成されました。あなたにとっての私の課題は、私のコードを改善するか、独自のより洗練されたソリューションを考え出すことです。Pythonまたはお気に入りの言語にすることができます。
私のコード:
from math import sin, cos, radians
def grow(steps, length = 200, startPos = (0,0)):
angle = 0
try:
jump = float(length) / (3 ** steps)
except:
jump = length
set="F"
for i in xrange(steps): set=set.replace("F", "FLFRFLF")
coords = [startPos]
for move in set:
if move is "F":
coords.append(
(coords[-1][0] + jump * cos(angle),
coords[-1][1] + jump * sin(angle)))
if move is "L":
angle += radians(60)
if move is "R":
angle -= radians(120)
return coords
編集:怠惰なコピーのために、私はインポートを忘れました