【tutle动态画图】七段数码管显示时间|Python 主题月

本文正在参加「Python主题月」,详情查看 活动链接

hello大家好,今天我又发现了个有趣的小玩意。我是专写有趣小玩意的老诗。

了解七段数码

不知道你们上大学的时候,有没有上过一门课,叫做逻辑电路。学软件的小伙伴不太确定你们有没有了解。但是学硬件的小伙伴肯定是不陌生的。今天的话题是七段数码管显示时间。

image.png

先上图吧,这些生活中显示数字的机器,其实就是一个个发光的小灯泡结合而成的。通过控制灯泡的开关,我们就可以控制电子屏幕上显示的数字。

image.png

我今天要做的是,在python中使用tutle进行画图,模拟这个七段数码管在机器中的运转。

了解tutle

海龟绘图是python很强大的库,它可以用来画各种各样的图样。甚至有人可以用它来做具体的ui设计。详细内容如下图所示:

image.png

有需要的小伙伴可以去他们的官方api进行学习 :传送门

开始写代码

我们先封装一个函数,用于根据数字显示图片

def drawdigit(digit):#根据数值绘制七段数码管
    drawline(True) if digit in [2,3,4,5,6,8,9] else drawline(False)
    drawline(True) if digit in [0,1,3,4,5,6,7,8,9] else drawline(False)
    drawline(True) if digit in [0,2,3,5,6,8,9] else drawline(False)
    drawline(True) if digit in [0,2,6,8] else drawline(False)
    t.left(180)
    t.pu()#为绘制后续数字确定位置
    t.fd(20)#为绘制后续数字确定位置
复制代码

实时提取本地时间,再将时间转换为数字

def drawdate(date):#获取日期
    t.pencolor("green")
    for i in date:
        if i == '年':
            t.write('年',font = ("Arial",18,"normal"))
            t.pencolor("blue")
            t.fd(40)
        elif i == "月":
            t.write('月',font = ("Arial",18,"normal"))
            t.pencolor("yellow")
            t.fd(40)
        elif i == "日":
            t.write('日',font = ("Arial",18,"normal"))
            t.pencolor("red")
            t.fd(40)
        elif i == "时":
            t.write('时',font = ("Arial",18,"normal"))
            t.pencolor("red")
            t.fd(40)
        elif i == "分":
            t.write('分',font = ("Arial",18,"normal"))
            t.pencolor("yellow")
            t.fd(40)
        elif i == "秒":
            t.write('秒',font = ("Arial",18,"normal"))
            t.pencolor("black")
            t.fd(40)
        else:
            drawdigit(eval(i))#通过eval()将数字变成整数
复制代码

最终效果图如下:

11111111.gif

有需要拿完整源码的话,请移步到公众号:诗一样的代码。既然进来了,原创不易。小伙伴点个赞再走呗

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享