大家好,我是羁绊的小水门。Python是一门十分受欢迎的编程语言,受到许多小伙伴们的热爱。Python中的turtle模块就可以帮助我们画画。但是我们如何、才能做到动画的效果呢?下面是旋转风筝的源代码,想要了解原理的小伙伴可以往下看。
# -*- coding: UTF-8 -*-
__author__ = "羁绊的小水门"
import turtle
import time
t = turtle.Turtle()
t.hideturtle()
colorList = ["blue", "darkgreen", "red", "yellow"]
while True:
turtle.tracer(False)
for i in colorList:
t.fillcolor(i)
t.begin_fill()
t.forward(200)
t.left(135)
t.forward(141.5)
t.left(90)
t.forward(141.5)
t.right(135)
t.end_fill()
turtle.update()
t.clear()
t.left(5)
time.sleep(0.1)
那么接下来小水门就给大家来介绍一下原理吧。
想必大家应该知道动画片吧?动画片就是由许多张图片快速切换而组成的。所以代码主要的思路就是让turtle不停的画,然后擦掉,往左旋转一点,在画,在擦掉。。。但是别忘记动画还有一个重要的组成因素:那就是视觉暂留。通过图片的快速切换,从而从视觉上达到动画的效果。所以这里要在每一次画之前停留0.1秒(视觉暂留的时间在0.1~0.2之间)。那么原理讲解完了,接下来开始分析代码。(建议Python有一点turtle基础的往下看,否则会感觉什么都听不懂的,了解了原理就好了)
话不多说,咱们现在就开始来肝代码!
在Python中我们要实现永远可以旋转的风筝,所以要用while True循环来实现永久旋转的效果。但是turtle不是神,画画也需要时间啊!那这样岂不是打不成效果了?所以这是我们就要用到turtle中的一个函数:tracer()。这个函数可以帮助我们省略画图过程。tracer的括号中填False就可以省略画图过程了。与此同时,我们也要在后边刷新一下(update)。刚刚也说了,每一次都要擦掉再画,所以我们这边就用clear函数来擦掉风车,然后旋转一点就是left函数,括号中间就是旋转的度数,最后一行代码time.sleep(0.1)想必大家也都猜到了,就是让时间停留0.1秒,括号中的数就是停留的时间(单位是秒)但是在用这一行代码的时候一定要注意:要在程序的开头import导入一下time模块,否则会报错!
那么这一次的分享就到此为止了,想要代码的可以复制上面的代码。各位大佬,既然看到这里了,就点个赞吧!
这是小水门第一次发布文章,如做的不好的话,请见谅。
注:此内容为小水门原创作品,不可抄袭。



