在 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)
这似乎让我们离你想去的地方更近了:
还需要做什么?那些额外的代码对你有什么用?底线:从简单开始。
我有一个练习,我必须在 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)
这似乎让我们离你想去的地方更近了:
还需要做什么?那些额外的代码对你有什么用?底线:从简单开始。