导语
啊咧~最近发现家里的时钟经常会不准确?
直到有一天,我看到了一幕:
大橘对时钟伸出了罪恶之爪;
一会儿左摆弄、一会儿右摆弄?
铲屎官:咋滴!你是把它当作逗猫棒了啊喂!
猫:我这么明显了,你害还看不懂?
网友:等等!是不是开罐罐的时间到了……
家有一猫,如有一宝,小编家的团子还是不能碰的~不然打过了会心疼!!
那能怎么办,没事儿大橘子你自己玩儿叭——好的东西都给你了
爸爸自己来重新想个办法——含泪写下一款简易版本的时钟给自己用~
正文
环境安装部分:Python3.6 以及自带的模块。
使用turtle画图创建时钟:
'''创建时钟'''
def createClock(radius):
turtle.reset()
turtle.pensize(7)
for i in range(60):
move(radius)
if i % 5 == 0:
turtle.forward(20)
move(-radius-20)
else:
turtle.dot(5)
move(-radius)
turtle.right(6)
创建表针(定义形状长度等):
'''创建表针turtle'''
def createHand(name, length):
turtle.reset()
move(-length * 0.01)
turtle.begin_poly()
turtle.forward(length * 1.01)
turtle.end_poly()
hand = turtle.get_poly()
turtle.register_shape(name, hand)
动态显示时钟:利用datetime库获取当前的日期与时间,真的特别准哦!!一摸一样!
def startTick(second_hand, minute_hand, hour_hand, printer):
today = datetime.datetime.today()
second = today.second + today.microsecond * 1e-6
minute = today.minute + second / 60.
hour = (today.hour + minute / 60) % 12
# 设置朝向
second_hand.setheading(6 * second)
minute_hand.setheading(6 * minute)
hour_hand.setheading(12 * hour)
turtle.tracer(False)
printer.forward(65)
printer.write(getWeekday(today), align='center', font=("Courier", 14, "bold"))
printer.forward(120)
printer.write('12', align='center', font=("Courier", 14, "bold"))
printer.back(250)
printer.write(getDate(today), align='center', font=("Courier", 14, "bold"))
printer.back(145)
printer.write('6', align='center', font=("Courier", 14, "bold"))
printer.home()
printer.right(92.5)
printer.forward(200)
printer.write('3', align='center', font=("Courier", 14, "bold"))
printer.left(2.5)
printer.back(400)
printer.write('9', align='center', font=("Courier", 14, "bold"))
printer.home()
turtle.tracer(True)
# 100ms调用一次
turtle.ontimer(lambda: startTick(second_hand, minute_hand, hour_hand, printer), 100)
效果图:滴答滴答~
总结
🎊🎊源码基地:关注小编获取哦~💝记得三连吖。赶快学起来!
记得三连哦!感谢~