Реализация кривой Коха?
Я искал страницу википедии для снежинки Кох (Вот) и был обеспокоен всеми примерами в стиле логотипа / черепахи. Поэтому я решил сделать свой собственный, который вернул список или координаты.
Моя реализация написана на python, и я в основном сорвал реализацию python turtle, но заменил специфичные для turtle вещи базовым триггером. Это привело к некрасивому коду. Моя задача для вас - либо улучшить мой код, либо придумать более умное собственное решение. Это может быть на 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
РЕДАКТИРОВАТЬ: из-за ленивого копирования я забыл импорт