用python画雪花 科赫曲线递归_【TCE的编程小讲堂】【Python】【第三期】如何画出科赫雪花?(下)...

本文介绍了如何使用Python的turtle库通过递归方法绘制科赫雪花。讲解了科赫曲线的基本原理,并提供了代码示例,读者可以通过输入层数来生成不同级别的科赫雪花图案。此外,代码中还包括了调整画笔颜色和粗细的细节,以及对图形的旋转操作。
摘要由CSDN通过智能技术生成

大家还记得上期讲的科赫雪花吗?我们上次讲过画出一条边的方法,大家看看代码复习一下

import turtle#包含turtle库

def koch(l):

turtle.forward(l / 4)#画出第一条边

turtle.left(60)#转向

turtle.forward(l / 4)#画出第二条边

turtle.right(120)#转向

turtle.forward(l / 4)#画出第三条边

turtle.left(60)#转向

turtle.forward(l / 4)#画出第四条边

turtle.up()

turtle.back(150)

turtle.down()

'''如果你不是强迫症的话,上面三行代码可以省略'''

koch(400)#参数表示大小

turtle.done()#如果你想锻炼你的眼力的话,这行代码可以省略

那么,我们应该如何做到输入层数,之后画出相应层数的科赫雪花呢?

没错,就是使用递归的方法c89242bded003454d7ee7f9506e347f4b9667fab.gif科赫雪花

(图片来自https://www.sohu.com/a/292614238_358040)

观察上面这张图,大家有没有发现,一个n层的科赫雪花的一条边,都是一个n-1层的科赫曲线

也就是说,每递归一次,层数都减少1,最后就可以画出一个科赫雪花了

不多解释,上代码

import turtle#包含turtle库

def koch(l,n):

if (n == 0):#递归终止条件

turtle.forward(l)#画出最短的线

else:

koch(l / 3, n - 1)#画出第一条边

turtle.left(60)#旋转

koch(l / 3, n - 1)#画出第二条边

turtle.right(120)#旋转

koch(l / 3, n - 1)#画出第三条边

turtle.left(60)#旋转

koch(l / 3, n - 1)#画出第四条边

#开始进入Python的世界

turtle.pensize(1)#调整画笔的粗细

turtle.pencolor("#66cccc")#调整画笔的颜色

a = turtle.numinput('codemao', '你要画几层的科赫雪花?')#输入层数

turtle.penup()

turtle.goto((-100), 100)

turtle.pendown()

'''上面三行是强迫症专属代码'''

for i in range(3):

koch(200, a)#第一个参数是大小,第二个是层数

turtle.right(120)

'''画出三条边,每当画完一条后,旋转120度'''

turtle.done()#训练眼力的可以不要这行代码

好的,那么本次的教学就到这里结束了

(有一点少(shui)对吧)

如果想要看到其他内容,欢迎来论坛搜索【TCE的编程小讲堂】关键词找我哦!

本人是学生党,用休息时间赶出来的帖子,如果有不详细之处还望谅解

往期内容:

第一期:【TCE的编程小讲堂】【Python】【第一期】Pyautogui干货(上)

网址:https://shequ.codemao.cn/community/210335

第二期:【TCE的编程小讲堂】【Python】【第二期】如何画出科赫雪花?(上)

网址:https://shequ.codemao.cn/community/219991

(本文和我在编程猫发的帖子一模一样,所以有什么不合适的地方的话……我也懒得改)

(编程猫社区帖子地址:https://shequ.codemao.cn/community/249245)

(编程猫主页:https://shequ.codemao.cn/user/2236816)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值