python画钟表_使用python画出时钟效果

使用python画出时钟效果

2020-06-23 15:00

阅读数 14

python生成的时钟效果,大家可以参考:

使用的python版本:3.7.0 ,以下为源代码:

# time.py from turtle import * from datetime import * import time def

SetupClock(radius): #建立表的外框 reset() pensize() for i in range(60): Skip(radius)

if i % 5 == 0: forward(20) Skip(-radius-20) else: dot(5) Skip(-radius) right(6)

def Skip(step): penup() forward(step) pendown() #定义表针函数mkHand() def

mkHand(name, length): #注册Turtle形状,建立表针Turtle reset() Skip(-length*0.1)

begin_poly() forward(length*1.1) end_poly() handForm = get_poly()

register_shape(name, handForm) def Init(): global secHand, minHand, hurHand,

printer mode("logo") # 重置Turtle指向北 #建立三个表针Turtle并初始化 mkHand("secHand", 125)

mkHand("minHand", 130) mkHand("hurHand", 90) secHand = Turtle()

secHand.shape("secHand") minHand = Turtle() minHand.shape("secHand") hurHand =

Turtle() hurHand.shape("secHand") for hand in secHand, minHand, hurHand:

hand.shapesize(1, 1, 3) hand.speed(0) #建立输出文字Turtle printer = Turtle()

printer.hideturtle() printer.penup() def get_week_day(): week_day_dict = { 0 :

'星期一', 1 : '星期二', 2 : '星期三', 3 : '星期四', 4 : '星期五', 5 : '星期六', 6 : '星期天', }

today = int(time.strftime("%w")) return week_day_dict[today] #更新时钟函数Tick() def

Tick(): #绘制表针的动态显示 t = datetime.today() second = t.second +

t.microsecond*0.000001 minute = t.minute + second/60.0 hour = t.hour +

minute/60.0 tracer(False) printer.forward(65) # print(get_week_day())

printer.write(get_week_day(), align="center", font=("Courier", 14, "bold"))

printer.back(130) printer.write((str(t.year)+"-"+str(t.month)+"-"+str(t.day)),

align="center", font=("Courier", 14, "bold")) printer.home() tracer(True)

secHand.setheading(6*second) minHand.setheading(6*minute)

hurHand.setheading(30*hour) ontimer(Tick, 100) #100ms后继续调用tick def main():

tracer(False) Init() SetupClock(160) tracer(True) Tick() mainloop() if __name__

== '__main__': main()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值