今天就做一个钟表时钟,是真的可以看当前时间的
代码效果:
你没看错,就是做一个这样的钟表!
接下来开始写代码吧
目录
😎设置窗口和画笔
首先导入库
import turtle
窗口背景图片为钟表的1, 2 ...11, 12每个数字
设置背景图片的函数是bgpic
代码:
turtle.bgpic('bg.gif')
注意:turtle里用bgpic只能导入png格式或gif格式
这里使用gif因为gif更稳定
下面设置窗口大小
代码:
turtle.setup(600, 600)
setup用来设置窗口大小
继续下一步:
隐藏画笔
代码:
turtle.hideturtle()
hideturtle就是隐藏画笔的意思
最后,取消绘图动画:
turtle.tracer(0)
到这里,设置窗口和画笔的步骤都完成了,接着下一步
🤣定义钟表指针函数
定义函数的语句是def
下面代码为定义函数:
def clock_pointer(c, s, a, l):
函数接收四个参数:c, s, a, l
c是颜色
s是粗细
a是角度
l是长度
这个函数是用来画指针的
计算指针的角度就需要把指针初始位置设置成垂直
turtle中设置画笔朝向是setheading函数,可以简写成seth
代码:
turtle.seth(90)
90度就是垂直
接下来设置颜色、粗细、角度和长度
代码:
turtle.pencolor(c)
turtle.pensize(s)
turtle.right(a)
turtle.forward(l)
turtle.backward(l)
第一行是设置颜色,turtle中颜色为英文,全部小写,字符串形式
第二行是设置画笔粗细,用pensize
第三行是设置角度,也就是向右旋转a度
第四行是设置指针长度,用的是画笔前进函数forward
第五行是后退到起始点
到这里,定义钟表指针函数的步骤就完成了,继续
🤩编写主循环
想要画出准确的时间,就要先获取本地时间
获取本地时间的函数是localtime,这个是time库里的,所以要导入time库
import time
time.localtime()
如果使用localtime获取时间,获取的是这样一串:
那怎么提取出时、分、秒呢
hour = time.localtime().tm_hour
minute = time.localtime().tm_min
second = time.localtime().tm_sec
在localtime后加.tm_hour/min/sec即可获取时分秒
接下来还要把时间画在钟表的指针上
可以用这种方法实现:
clock_pointer('gray', 10, hour*(360/12), 70)
clock_pointer('silver', 6, minute*(360/60), 130)
clock_pointer('gold', 3, second*(360/60), 130)
这样就可以画出指针了
接下来让指针不断变化,需要用动画,以下为代码实现
turtle.update()
turtle.clear()
先画出钟表指针,再刷新,再清除,一直循环下去就可以实现指针动起来的效果了
到此,程序就写完了。
下篇文章见。