5.2 Python数码管绘制

利用python的turtle库来实现用7段数码管来显示时间

1
2
3
4
5
6
7
8
# 倒计时

import turtle as t
#t.speed(10) 调节画笔快慢

def drawGap():#数码管间隔
    t.penup()
    t.fd(5)
1
2
3
4
5
6
def drawline(draw):#绘制线条
    drawGap()
    t.pendown() if draw else t.penup() #draw真假两种取值
    t.fd(40)
    drawGap()
    t.right(90)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
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(90)
    drawline(True) if digit in [0, 4, 5, 6, 8, 9] else drawline(False)
    drawline(True) if digit in [0, 2, 3, 5, 6, 7, 8, 9] else drawline(False)
    drawline(True) if digit in [0, 1, 2, 3, 4, 7, 8, 9] else drawline(False)
    #调整方向 因为函数drawline每次都会右转90°
    t.right(180)
    t.penup()
    t.fd(20)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
def drawDate():
    for i in range(10, -1, -1):
        t.hideturtle()
        for num in str(i):
            drawDigit(eval(num))
        l = len(str(num)) * (5+40+5+20) #一个字符长度是1
        t.penup()
        t.bk(l)
        t.clear()
def main():
    t.setup(800,350,200,200) #画布宽高,距屏幕左上角位置
    t.penup()
    t.fd(-300)
    t.pensize(5)
    drawDate()
    t.write("BOOM !!!", font=("Arial", 50, "bold"))#字体 大小 加粗
    t.hideturtle()
    t.done()
main()
Licensed under CC BY-NC-SA 4.0
© ziyue.tech版权所有
Built with Hugo
主题 OoO落墨灼夭 设计

本站访问量:   您是本站第 位访问者