大橘暗中乱调时钟,被抓包后…主人居然自己做了一款永不过时的!

137 阅读2分钟

导语

啊咧~最近发现家里的时钟经常会不准确?

直到有一天,我看到了一幕:

大橘对时钟伸出了罪恶之爪;

图片

一会儿左摆弄、一会儿右摆弄?

图片

铲屎官:咋滴!你是把它当作逗猫棒了啊喂!

猫:我这么明显了,你害还看不懂?

网友:等等!是不是开罐罐的时间到了……

图片

家有一猫,如有一宝,小编家的团子还是不能碰的~不然打过了会心疼!!

那能怎么办,没事儿大橘子你自己玩儿叭——好的东西都给你了

爸爸自己来重新想个办法——含泪写下一款简易版本的时钟给自己用~

正文

环境安装部分: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)

效果图:滴答滴答~

总结

源码基地免费领取源码:#959755565# 赶快学起来!

记得三连哦!感谢~