Shing-gyl

导航

7段数码管绘制

代码如下:

 

 1 import turtle, datetime
 2 
 3 def drawGap():  # 绘制数码管间隔
 4     turtle.penup()
 5     turtle.fd(5)
 6 
 7 def drawLine(draw):  # 绘制单段数码管
 8     drawGap()
 9     turtle.pendown() if draw else turtle.penup()
10     turtle.fd(40)
11     drawGap()
12     turtle.right(90)
13 
14 def drawDigit(d):  # 根据数字绘制七段数码管
15     drawLine(True) if d in [2, 3, 4, 5, 6, 8, 9] else drawLine(False)
16     drawLine(True) if d in [0, 1, 3, 4, 5, 6, 7, 8, 9] else drawLine(False)
17     drawLine(True) if d in [0, 2, 3, 5, 6, 8, 9] else drawLine(False)
18     drawLine(True) if d in [0, 2, 6, 8] else drawLine(False)
19     turtle.left(90)
20     drawLine(True) if d in [0, 4, 5, 6, 8, 9] else drawLine(False)
21     drawLine(True) if d in [0, 2, 3, 5, 6, 7, 8, 9] else drawLine(False)
22     drawLine(True) if d in [0, 1, 2, 3, 4, 7, 8, 9] else drawLine(False)
23     turtle.left(180)
24     turtle.penup()
25     turtle.fd(20)
26 
27 def drawDate(date):
28     turtle.pencolor("red")
29     for i in date:
30         if i == '+':
31             turtle.write('', font=("Arial ", 36, "normal"))
32             turtle.pencolor("green")
33             turtle.fd(40)
34         elif i == '-':
35             turtle.write('', font=("Arial", 36, "normal"))
36             turtle.pencolor("blue")
37             turtle.fd(40)
38         elif i == '*':
39             turtle.write('', font=("Arial", 36, "normal"))
40             turtle.pencolor('red')
41             turtle.fd(40)
42         elif i == '/':
43             turtle.write('', font=("Arial", 36, "normal"))
44             turtle.pencolor('green')
45             turtle.fd(40)
46         elif i == '!':
47             turtle.write('', font=("Arial", 36, "normal"))
48             turtle.pencolor('blue')
49             turtle.fd(40)
50         elif i == '@':
51             turtle.write('', font=("Arial", 36, "normal"))
52         else:
53             drawDigit(eval(i))
54     turtle.exitonclick()
55 
56 def main():
57     turtle.setup(1366, 350, 0, 200)
58     turtle.penup()
59     turtle.fd(-600)
60     turtle.pensize(5)
61     drawDate(datetime.datetime.now().strftime('%Y+%m-%d*%H/%M!%S@'))
62     turtle.hideturtle()
63 
64 main()

 

代码运行结果如下:

 

 

posted on 2022-12-08 17:18  Shing-  阅读(83)  评论(0)    收藏  举报