如何加速python';s';海龟';功能,并在结束时停止冻结
我已经用python编写了一个海龟程序,但是有两个问题如何加速python';s';海龟';功能,并在结束时停止冻结,python,graphics,draw,turtle-graphics,Python,Graphics,Draw,Turtle Graphics,我已经用python编写了一个海龟程序,但是有两个问题 对于较大的数字来说,速度太慢了,我想知道如何才能加快速度 它在完成后会冻结,点击后会显示“无响应” 这是我目前的代码: import turtle #Takes user input to decide how many squares are needed f=int(input("How many squares do you want?")) c=int(input("What colour would you like? red
import turtle
#Takes user input to decide how many squares are needed
f=int(input("How many squares do you want?"))
c=int(input("What colour would you like? red = 1, blue = 2 and green =3"))
n=int(input("What background colour would you like? red = 1, blue = 2 and green =3"))
i=1
x=65
#Draws the desired number of squares.
while i < f:
i=i+1
x=x*1.05
print ("minimise this window ASAP")
if c==1:
turtle.pencolor("red")
elif c==2:
turtle.pencolor("blue")
elif c==3:
turtle.pencolor("green")
else:
turtle.pencolor("black")
if n==1:
turtle.fillcolor("red")
elif n==2:
turtle.fillcolor("blue")
elif n==3:
turtle.fillcolor("green")
else:
turtle.fillcolor("white")
turtle.bk(x)
turtle.rt(90)
turtle.bk(x)
turtle.rt(90)
turtle.bk(x)
turtle.rt(90)
turtle.bk(x)
turtle.rt(90)
turtle.up()
turtle.rt(9)
turtle.down()
导入海龟
#使用用户输入来决定需要多少方块
f=int(输入(“您想要多少个正方形?”)
c=int(输入(“您想要什么颜色?红色=1,蓝色=2,绿色=3”))
n=int(输入(“您想要什么背景颜色?红色=1,蓝色=2,绿色=3”))
i=1
x=65
#绘制所需数量的正方形。
而i
顺便说一下:我在3.2版上
turtle.speed()
设置为faster
turtle.mainloop()
功能在不刷新屏幕的情况下完成工作turtle.tracer(0,0)
禁用屏幕刷新,然后在末尾执行turtle.update()
作为参考,海龟行动缓慢是一个存在的问题。 即使将“速度”设置为“最大”,海龟也会花很长时间处理分形等问题。 Nick ODell在这里重新实现了龟速:
Python turtle运行非常缓慢,因为每次对turtle进行修改后都会执行屏幕刷新。 您可以禁用屏幕刷新,直到所有工作完成,然后绘制屏幕,这将消除毫秒延迟,因为屏幕会疯狂地尝试从每次更改中更新屏幕 例如:
import turtle
import random
import time
screen = turtle.Screen()
turtlepower = []
turtle.tracer(0, 0)
for i in range(1000):
t = turtle.Turtle()
t.goto(random.random()*500, random.random()*1000)
turtlepower.append(t)
for i in range(1000):
turtle.stamp()
turtle.update()
time.sleep(3)
这段代码在任意位置生成一千只海龟,并在大约200毫秒内显示图片
如果您没有使用turtle.tracer(0,0)
命令禁用屏幕刷新,它将花费几分钟时间尝试刷新屏幕3000次
我不能真正解决速度问题,但是可以使用
乌龟来防止冰冻。done()
在文件末尾,谢谢如果您正在使用更新版本的turtle,turtle对象没有tracer属性。您必须为屏幕对象设置跟踪器属性。在保持动画可见的情况下,它能以多快的速度运行?
import turtle
import random
import time
screen = turtle.Screen()
turtlepower = []
turtle.tracer(0, 0)
for i in range(1000):
t = turtle.Turtle()
t.goto(random.random()*500, random.random()*1000)
turtlepower.append(t)
for i in range(1000):
turtle.stamp()
turtle.update()
time.sleep(3)