在 Python 中使用 turtle 模块生成嵌套图像的问题

Problems to generate a nested image with the turtle module in Python

我有一个练习,我必须在 Python 中使用 turtle 模块生成图像。而我设法生成了某种形式的图案,但未能获得最终结果。 到目前为止,这是允许我生成图像的代码。

import turtle

def generarVentana(titulo, color):
    w = turtle.Screen()
    w.title(titulo)
    w.bgcolor(color)

    return w

def generarTortuga(color, tamano):
    t = turtle.Turtle()
    t.color(color)
    t.pensize(tamano)

    return t

def generaArista2(tortuga, lado_base, iteraciones):

    ang_abajo = 275
    ang_izquierda = 185
    ang_arriba = 95
    ang_derecha = 5

    for i in range (iteraciones):
        for angulo in [ang_abajo, ang_izquierda, ang_arriba, ang_derecha]:
            print("heading inicio", tortuga.heading())
            tortuga.setheading(0)
            print("heading final", tortuga.heading())
            tortuga.left(angulo)
            tortuga.forward(lado_base)
            lado_base += 10
        print(ang_abajo)
        print(ang_izquierda)
        print(ang_arriba)
        print(ang_derecha)
        ang_abajo += 2
        ang_izquierda += 2
        ang_arriba += 2
        ang_derecha += 2


wn = generarVentana("Ejercicio 5", "lightgreen")

tess = generarTortuga("blue", 2)

tess.speed("fastest")

generaArista2(tess, 5, 20)

wn.mainloop()

这是我用我的代码得到的结果

如果您可以指出应该修改部分代码以便我可以生成所需的模式,我将不胜感激因为我也更改了线条的大小作为角度,但我无法生成图案。

我要说的是你想多了。假设我们在 generaArista2 中抛出 2/3(非 print)语句,然后简单地执行:

def generaArista2(tortuga, lado_base, iteraciones):

    for _ in range(iteraciones):
        tortuga.right(89)
        tortuga.forward(lado_base)

        lado_base += 3

# ...

generaArista2(tess, 2, 99)

这似乎让我们离你想去的地方更近了:

还需要做什么?那些额外的代码对你有什么用?底线:从简单开始。