我将乌龟设置为最快,并且当我单独运行第一个循环时还不错,但是随着我添加的更多内容,它变得与仅执行第一个循环时相当。我不知道这是否仅是由于图纸的复杂性,但是完成形状要花费相当长的时间。有什么我可以解决的吗?

import turtle

turtle.bgcolor("Red")
turtle.color("Yellow", "Pink")
turtle.shape("turtle")
turtle.begin_fill()
turtle.speed("fastest")

while True:
    turtle.forward(300)
    turtle.left(179)
    turtle.circle(20)
    if abs(turtle.pos()) < 1:
        break

turtle.setheading(270)



while True:
    turtle.forward(300)
    turtle.left(179)
    turtle.circle(20)
    if abs(turtle.pos()) < 1:
        break

turtle.setheading(180)


while True:
    turtle.forward(300)
    turtle.left(179)
    turtle.circle(20)
    if abs(turtle.pos()) < 1:
        break

turtle.setheading(90)


while True:
    turtle.forward(300)
    turtle.left(179)
    turtle.circle(20)
    if abs(turtle.pos()) < 1:
        break


turtle.end_fill()



turtle.getscreen()._root.mainloop()

最佳答案

我的分析是,您的填充(即turtle.begin_fill()turtle.end_fill())使代码3X的运行速度减慢,没有任何实际效果。这些图像之一带有填充,一个没有:

python -  turtle graphics  turtle 放慢速度-LMLPHP

如果您无法体会差异(即使是全尺寸),那么填充可能只是浪费时间。如果您只是想要最终的图像,而不关心观看它的绘制,那么为了获得更好的性能,我建议您执行以下操作:

from turtle import Screen, Turtle

screen = Screen()
screen.bgcolor("Red")
screen.tracer(False)

turtle = Turtle(visible=False)
turtle.color("Yellow", "Pink")

for heading in range(0, 360, 90):

    turtle.setheading(heading)

    turtle.begin_fill()

    while True:
        turtle.forward(300)
        turtle.left(179)
        turtle.circle(20)
        if abs(turtle.pos()) < 1:
            break

    turtle.end_fill()

screen.tracer(True)
screen.mainloop()

关于python - turtle graphics turtle 放慢速度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52524358/

10-13 00:03