使用turtle库绘制一些大型的图案时,作画时间有可能超出我们的忍耐区间。下面就介绍3个加速作图速度的方法,当中有些个人理解错误,请各位大佬指出。
方法一
turtle.speed(0)
官方文档中指出:speed()
可以指定0-10之间的整数,数值越大,作图速度越快。当给定值大于10或者小于0.5,则统一设置为0。
文档中也指出:当输入的参数为0时,就没有动画产生。(但是我怎么测试都感觉有动画,只不过是真的快了很多)
官方文档:
speed(speed=None)
Return or set the turtle’s speed.
Optional argument:
speed – an integer in the range 0…10 or a speedstring (see below)
Set the turtle’s speed to an integer value in the range 0 … 10.
If no argument is given: return current speed.
If input is a number greater than 10 or smaller than 0.5,
speed is set to 0.
Speedstrings are mapped to speedvalues in the following way:
‘fastest’ : 0
‘fast’ : 10
‘normal’ : 6
‘slow’ : 3
‘slowest’ : 1
speeds from 1 to 10 enforce increasingly faster animation of
line drawing and turtle turning.
Attention:
speed = 0 : no animation takes place. forward/back makes turtle jump
and likewise left/right make the turtle turn instantly.
方法二
turtle.delay(0)
这个是海龟作图中,作图的延迟属性。修改属性的延迟为0,以实现加快作图的目的。
举一反三,也可以修改属性为其他数值(大于0的数(包含浮点数)),来实现减慢作图的效果。
方法三
turtle.tracer(False)# 或者 turtle.tracer(0)
...
# 作图过程
...
turtle.update()
我结合实际测试,推测这个属性应该是开启/关闭作图过程展示。将tracer()
属性调为关闭(False或者0)后,执行作图代码时,窗口并不会出现任何东西,应该是保持开始作图之前的画面,直到执行turtle.update()
刷新画面。应该是就图画在后台内存中画好,然后执行刷新命令时,将内存读取到画面窗口中。
tracer()
中好像也有一个delay()
的可选形参,没有测试过,不知道实际作用。