采用函数递归的方法实现雪花的绘制
在函数递归的设计中,考虑
递归思想:函数 + 分支
递归链条: 线段的组合
递归基例: 初始线段
在科赫雪花绘制中,基例是当阶数为0时,无需进行线段的突起操作,直接画一条直线
采用if else 分支语句,if考虑基例情况, else 考虑在 n情况下, n-1情况的代码设计,这就是函数递归的设计思想。
代码实现:
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(2)
level = 3 #3阶科赫曲线
koch(400, level)
turtle.right(120)
koch(400, level)
turtle.right(120)
koch(400, level)
turtle.right(120)
turtle.hideturtle() #隐藏turtle画笔
turtle.done() #让运行结果停留
main()