我正在查看Koch Snowflake(here)的维基百科页面,并且被徽标/乌龟风格的所有示例所困扰.所以我开始自己制作返回列表或坐标.
我的实现是在python中,我基本上扯掉了python 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
编辑ÿ