mxin
作者mxin·2023-07-31 15:09
资深工程师·上海宝信软件股份有限公司

python习题-图形-简易时钟

字数 3193阅读 543评论 0赞 2

源自
https://blog.csdn.net/HuaFMX/article/details/120488442)
https://zhuanlan.zhihu.com/p/129221366
原文不方便拷贝,此外时针角度运行也有问题,做了修正和补充,作为python图形练习。

import turtle
from datetime import *
from turtle import *
import time
import sys

def clock_map():
    turtle.tracer(False)
    turtle.delay(delay=None)
    pen=turtle.Pen()
    pen.hideturtle()
    pen.speed(0)
    num=3
    for i in range(60):
        pen.pensize(1)
        pen.right(i/60*360)
        pen.penup()
        pen.forward(220)
        pen.pendown()
        pen.forward(10)
        if i%5==0:
            pen.pensize(4)
            pen.right(180)
            pen.forward(15)
            pen.right(180)
            pen.forward(15)
        if i%15==0:
            pen.pensize(10)
            pen.right(180)
            pen.forward(20)
            pen.right(180)
            pen.forward(20)

        pen.penup()
        pen.forward(25)
        if i%5==0:
            Hour=num
            if Hour>12:
                Hour=Hour-12
            pen.write(Hour,align="center",font=("Courier",18,"bold"))
            num=num+1
        pen.home()

def show_week(t):
    week = ["星期一  Mon", "星期二  Tue", "星期三  Wed", "星期四  Thu", "星期五  Fri", "星期六  Sat", "星期日  Sun"]
    return week[t.weekday()]

def get_date():
    time=datetime.today()
    year=time.year
    month=time.month
    day=time.day
    hour=time.hour
    min=time.minute
    sec=time.second
    week=show_week(time)
    return year,month,day,week

def data_show():
    year,month,day,week=get_date()
    turtle.tracer(False)
    turtle.delay(delay=None)
    pen=turtle.Pen()
    pen.hideturtle()
    pen.speed(0)
    pen.right(90)
    pen.penup()
    pen.forward(100)
    pen.pendown()
    messages=str(year)+"年"+str(month)+"月"+str(day)+"日"+ str(week)
    pen.write(messages,align="center",font=("Courier",14,"bold"))
    turtle.clear()
    tracer(False)

def get_time_jiao():
    time=datetime.today()
    hour=time.hour+time.minute/60
    mini=time.minute
    sec=time.second
    hour_jiao=hour%12/12*360-90
    mini_jiao=mini/60*360-90
    sec_jiao=sec/60*360-90
    return hour_jiao,mini_jiao,sec_jiao

def plot_time():
    hour_jiao,mini_jiao,sec_jiao=get_time_jiao()

    turtle.tracer(False)
    turtle.delay(delay=None)

    pen=turtle.Pen()
    pen.hideturtle()
    pen.speed(0)
    pen.pensize(10)
    pen.right(hour_jiao)
    pen.forward(100)
    pen.home()
    pen.pensize(5)
    pen.right(mini_jiao)
    pen.forward(150)
    pen.home()
    pen.pensize(2)
    pen.right(sec_jiao)
    pen.forward(200)
    pen.home()
    pen.hideturtle()

    pen.pensize(6)
    pen.penup()
    pen.goto(0, 240)
    pen.pendown()
    pen.right(6)
    pen.forward(60)
    pen.right(90)
    pen.forward(60)
    pen.right(90)
    pen.forward(60)
    pen.right(90)
    pen.forward(60)
    pen.hideturtle()
    tracer(False)

    turtle.ontimer(pen.clear,100)
    turtle.ontimer(plot_time,100)

def main():
    time=datetime.today()
    print(time.hour,time.minute,time.second,file=sys.stderr)
    clock_map()
    data_show()
    plot_time()
    pen=turtle.Pen()
    time=datetime.today()
    print(time.hour,time.minute,time.second,file=sys.stderr)

if __name__ == '__main__':
    main()
    mainloop()

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

2

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广