gpt4 book ai didi

python - 使用递归绘制雪花

转载 作者:太空宇宙 更新时间:2023-11-04 10:20:58 25 4
gpt4 key购买 nike

我想创建这样的输出:

enter image description here

我必须使用递归。

到目前为止,我的代码是这样的:

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)

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

我做错了什么?

enter image description here

编辑::

这是我设法想出的更好的东西。但它仍然不完美:

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)

enter image description here

注意倒数第 5 行。我必须对值 3 进行硬编码才能获得正确的值。

最佳答案

这里有一个解决方案:它并不完美,因为与您发布的图纸相比,它在主干上多了一束。

让我知道这是否适合您。

从 turtle 进口*

def drawFlake(length, depth):
"draws a flake"
if depth > 0:
for _ in range(6):
forward(length)
drawFlake(length // 3, depth - 1)
backward(length)
left(60)

drawFlake(200,4)

Flake depth 4

关于python - 使用递归绘制雪花,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32303391/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com