python用for循环画雪花图形_用递归绘制雪花

我想创建这样的输出:

x9g8e.png

我必须使用递归。

到目前为止,我的代码是这样的:from turtle import *

def drawFlake(length,depth):

fd(length)

input("first line done")

if depth>0:

left(60)

drawFlake(length/3,depth-1)

input("1")

left(120)

drawFlake(length/3,depth-1)

input("2")

left(120)

drawFlake(length/3,depth-1)

input("3")

left(120)

drawFlake(length/3,depth-1)

input("4")

left(120)

left(180)

#drawFlake(length/3,depth-1)

input("1")

left(120)

drawFlake(length/3,depth-1)

input("THIS IS THE LAST")

left(60)

left(180)

fd(length)

drawFlake(100,3)

这会产生这样的输出(这里,N=3)

问题是左边的那条长线。不应该排长队。相反,应该有另一个薄片图案

我做错什么了?

v7fZy.png

编辑:

这是我想出的更好的办法。但它仍然不完美:def doFigure(length,depth):

left(120)

fd(length)

if depth>1:

doFigure(length/3,depth-1)

bk(length)

right(60)

fd(length)

if depth>1:

doFigure(length/3,depth-1)

bk(length)

right(60)

fd(length)

if depth>1:

doFigure(length/3,depth-1)

bk(length)

right(60)

fd(length)

if depth>1:

doFigure(length/3,depth-1)

bk(length)

right(60)

fd(length)

if depth>1:

doFigure(length/3,depth-1)

bk(length)

right(60)

fd(length)

if depth == 3:

doFigure(length/3,depth-1)

bk(length)

right(180)

rbGry.png

注意最后第五行。我必须硬编码值3才能得到正确的值。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值