效果图如下,采用递归实现。注意一点,角度设置是按所画曲线的方向为x轴来设定,所以是0,60,-120,60.
# coding=utf-8
# 科赫曲线 分形几何:整体和局部都有相似之处
import turtle
def koch(size, n):
if n == 0:
turtle.fd(size)
else:
for angle in [0, 60, -120, 60]:
turtle.left(angle)
koch(size / 3, n - 1)
def main():
turtle.setup(600, 600)
turtle.penup()
turtle.goto(-200, 100)
turtle.pendown()
turtle.pensize()
level = 3
koch(400, level)
turtle.right(120)
koch(400, level)
turtle.right(120)
koch(400, level)
turtle.hideturtle()
turtle.done()
main()