用科赫曲线画图

代码如下,核心是递归思想(主要理解koch函数的else部分出现的递归)

# 雪花
from turtle import *


# 画科赫曲线函数
def koch(size, n):  # 只有当阶数为0时,往前走一段
    if n == 0:
        fd(size)
    else:
        # 将一条线分成四段,这里设置每段之间需要的转向
        for angle in [0, 60, -120, 60]:
            left(angle)
            # 转向之后进入了下一阶段,递归,这里一定要想清楚!

            koch(size / 3, n - 1)

 

画3阶科赫雪花主体函数,代码如下 

 

if __name__ == '__main__':  # 画3阶科赫雪花主体函数
    setup(650, 300, 200, 200)  # 将画笔左移一点
    penup()
    goto(-100, 0)
    pendown()
    # 设置画雪花的阶数,阶数越多,雪花细节越丰富,但画的也越慢
    level = 2
    size = 100
    hideturtle()  # 隐藏画笔
    # 每次画雪花的1/3,做转120
    for i in range(3):
        koch(size, level)
        left(120)
    done()

 

  调整每条线的偏转角度和总的偏转角度,可以获得不同的图形,是不是很有趣!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值