#Python制作一个时钟 import turtle from datetime import * def skip(step): #移动指定步数 turtle.penup() turtle.forward(step) turtle.pendown() def mk_hand(name,length): #绘制指针形状 turtle.reset()#清空窗口,重置turtle状态为起始状态 skip(-length*0.1) turtle.begin_poly()#开始记录多边形的顶点,当前位置是多边形的第一个顶点 turtle.forward(length*1.1) turtle.end_poly()#停止记录多边形的顶点,当前乌龟位置是多边形的最后一个顶点,将与第一个顶点相连 handForm=turtle.get_poly()#返回最后记录的多边形 turtle.register_shape(name,handForm)#注册Turtle形状命令 def setup_clock(radius): #绘制表盘 turtle.reset() turtle.pensize(7) for i in range(60): skip(radius) if i%5==0: turtle.pencolor("black") turtle.forward(20) if i==0: turtle.write(int(12),align="center",font=("Courier",14,"bold")) elif i==30: skip(25) turtle.write(int(i/5),align="center",font=("Courier",14,"bold")) skip(-25) elif (i==25 or i==35): skip(20) turtle.write(int(i/5),align="center",font=("Courier",14,"bold")) skip(-20) else: turtle.write(int(i/5),align="center",font=("Courier",14,"bold")) skip(-radius-20) else: turtle.pencolor("red") turtle.dot(5) skip(-radius) turtle.right(6)#顺时钟移动6度 def Week(t): week = ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"] return week[t.weekday()] def Date(t): y = t.year m = t.month d = t.day return "%s年%d月%d日" % (y, m, d) def tick(): #指针更新 t=datetime.today() sec_hand.setheading(6*t.second) min_hand.setheading(6*t.minute) hur_hand.setheading(30*t.hour) turtle.tracer(False) printer.forward(65) printer.write(Week(t), align="center",font=("Courier", 14, "bold")) printer.back(130) printer.write(Date(t),align="center",font=("Courier", 14, "bold")) printer.home() turtle.tracer(True) turtle.ontimer(tick,1000) turtle.title("时钟") turtle.tracer(False) turtle.mode("logo") #绘制指针 mk_hand("secHand",135) mk_hand("minHand",125) mk_hand("hurHand",90) sec_hand=turtle.Turtle() sec_hand.shape("secHand") sec_hand.pencolor("red") min_hand=turtle.Turtle() min_hand.shape("minHand") min_hand.pencolor("blue") hur_hand=turtle.Turtle() hur_hand.shape("hurHand") for hand in sec_hand,min_hand,hur_hand: hand.shapesize(1,1,3) hand.speed(0) printer=turtle.Turtle() printer.hideturtle() printer.penup() #绘制表盘 setup_clock(160) turtle.tracer(True) tick() turtle.done()
#Python制作一个时钟
猜你喜欢
转载自www.cnblogs.com/yanglike111/p/13180758.html
今日推荐
周排行