gpt4 book ai didi

python - turtle 图形 turtle 放慢速度

转载 作者:行者123 更新时间:2023-12-01 09:00:07 28 4
gpt4 key购买 nike

我将 turtle 设置为最快,当我单独运行第一个循环时,效果很好,但随着我添加更多,它变得与仅单独执行第一个循环时相当。我不知道这是否只是因为绘图的复杂性,但完成形状需要相当长的时间。我可以做些什么来解决这个问题吗?

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(),使代码速度减慢了 3 倍,没有任何实际效果。其中一张填充,一张没有:

enter image description here

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

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 图形 turtle 放慢速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52524358/

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