程序·创造
程序的世界里你做主
上面的文章里,其实我在教你画圆的circle命令之前还教了大家一种画圆的方法:前进forward一小步——左转left一个角度——前进forward一小步——左转一个角度——前进forward一小步——左转left一个角度......
大家应该记得吧?告诉大家,这可是一个很重要的数学思想:所谓圆形其实就是一个边长很小很小很小的多边形,是不是可以这样子理解呢?古代人有个聪明的家伙叫阿基米德就想到了这一点,然后用这种方法求出了圆的圆周率pi。
定时器
Timer
那今天再写个代码还用上面说的第二种方法画圆:forward--left--forward--left--forward--left--forward--left--forward--left--forward--left--forward--left--forward--left--forward--left....只不过我这次不用写这么多的重复代码了,因为我有一个“定时器”。先看代码:
代码1
仅仅10行代码,出来什么效果呢?自己把上面的代码敲进电脑然后运行一下看看吧!
代码1执行结果
果然是圆形,而且小乌龟一直在转啊转的!(你可能会说,这个不像圆形!确实,你可以把上面代码的forward前进的数值改小点,比如5试试,是不是就更像圆形了?)看move()函数里有这个语句:turtle.ontimer(move,200),这就是我们的定时器:
定时器的功能就是:每隔设定的时间(毫秒为单位,1秒钟=1000毫秒)就执行一次指定的函数(上例子是执行move函数)。一般我们就将这个定时器语句放在这个我们要重复执行的函数里,比如上例中我们要定时执行move()函数,所以就将这个定时器放在了move()函数的结尾。
这么一说,大家就理解了:每隔200毫秒就执行一次move函数(前进forward30,左转left30),最终就是一直执行这两个命令,最后一直在那里不停的画圆。
自己随便试验吧
Let's Try it
好了,ontimer定时器看起来有点“循环”执行的效果了。我们随便改下move()函数里的代码看看。比如改成下面这样:
代码2
改动部分是上面的阴影部分,看下吧!执行下画什么图呢?原来如此。
代码2执行结果
好了,我又改了下move函数里的两个命令,forward我删除了,变成left!会出现什么效果呢?拭目以待吧!
代码3
代码3执行结果
能想得到它会画出这样的图形吧?好了,交给你了,发挥你的想象力,随便改下代码画出其他酷炫的图形吧!
领取专属 10元无门槛券
私享最新 技术干货