Turtle.tracer 的具体用法是什么?...我用它来禁用动画,但论点不清楚...
龟屏单例的tracer()
方法(也暴露为顶级函数)的功能很容易理解,但它的参数不是。默认设置为:
turtle.tracer(1, 10)
让我们首先处理可选的第二个参数。为了方便起见,它只是简单地传递给delay()
海龟屏幕单例的方法。从那里它被传递到turtle 的TK 基础上。由于这个答案是关于tracer()
我不会delay()
在这里讨论。
我看到了两种使用方法tracer()
。更复杂的是提供一个数值n
告诉海龟只执行每第 n 次更新而不是每次更新。这取决于您对绘图代码的深入了解,例如,您只需要每 257 次更新一次。并在实际发生更新时有所了解。对于我们大多数人来说,情况并非如此。
更简单的使用方法tracer()
是使用一个布尔参数(伪装成数字)并与update()
函数结合使用:
tracer(False) # turn off visible drawing
for ...:
... # draw stuff
update() # update the visible drawing now
...
tracer(True) # return to normal drawing
需要注意的几点: 1)clear()
turtle screen 单例的方法重置tracer()
为其默认值;2) 某些海龟命令,例如end_fill()
,可能会导致更新发生,无论您的跟踪器设置如何。
您的代码使用以下更简单的模型进行了修改tracer()
:
import turtle
yd = xd = -64
turtle.width(5)
turtle.tracer(False)
for i in range(2):
turtle.penup()
turtle.goto(-197.5, yd)
turtle.pendown()
turtle.setheading(0)
turtle.forward(394)
yd += 128
turtle.penup()
turtle.goto(xd, 197.5)
turtle.pendown()
turtle.setheading(270)
turtle.forward(394)
xd += 128
turtle.update() # only display completed lines
turtle.hideturtle()
turtle.tracer(True)
turtle.mainloop()