Ich habe mir die Wikipedia-Seite über die Koch-Schneeflocke angesehen ( hier ) und störte sich daran, dass alle Beispiele im Logo/Schildkrötenstil gehalten waren. Also machte ich mich auf den Weg, um mein eigenes Programm zu erstellen, das eine Liste oder Koordinaten zurückgibt.
Meine Implementierung ist in Python und ich im Grunde riss aus der Python-Schildkröte-Implementierung, aber ersetzt die Schildkröte-spezifischen Sachen mit grundlegenden trig. Das Ergebnis ist ein hässlicher Code. Meine Herausforderung für euch ist es, entweder meinen Code zu verbessern oder eine elligantere Lösung für euch selbst zu finden. Das kann in Python oder in Ihrer Lieblingssprache sein.
Mein Code:
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
EDIT: aufgrund von Faulheit beim Kopieren habe ich den Import vergessen