動態數碼管python

#SevenDigitsDrawV2.py
import turtle, time
turtle.delay(0)


 
def drawGap(): #繪製數碼管間隔
    turtle.penup()
    turtle.fd(5)
def drawLine(draw):   #繪製單段數碼管
    drawGap()
    turtle.pendown() if draw else turtle.penup()
    turtle.fd(40)
    drawGap()
    turtle.right(90)
def drawDigit(d): #根據數字繪製七段數碼管
    turtle.speed(0)
    drawLine(True) if d in [2,3,4,5,6,8,9] else drawLine(False)
    drawLine(True) if d in [0,1,3,4,5,6,7,8,9] else drawLine(False)
    drawLine(True) if d in [0,2,3,5,6,8,9] else drawLine(False)
    drawLine(True) if d in [0,2,6,8] else drawLine(False)
    turtle.left(90)
    drawLine(True) if d in [0,4,5,6,8,9] else drawLine(False)
    drawLine(True) if d in [0,2,3,5,6,7,8,9] else drawLine(False)
    drawLine(True) if d in [0,1,2,3,4,7,8,9] else drawLine(False)
    turtle.left(180)
    turtle.penup()
    turtle.fd(20)
 
def drawDate(date):
    turtle.pencolor("green")
    for i in date:
        if i.isnumeric():  drawDigit(eval(i))
        else:
            turtle.write(i,font=("Arial", 18, "normal"))
            turtle.fd(40)
            
def main():
    turtle.setup(1400, 400, 0, 0)
    turtle.penup()
    turtle.fd(-350)
    turtle.pensize(5)
#    drawDate('2018-10=10+')
    for i in range(20):
        turtle.goto(-600,0)
        turtle.tracer(False)
        
        a=time.strftime('%Y{y}%m{m}%d{d}%H{h}%M{M}%S{S}').format(y='年'
               ,m='月',d='日',h='時',M="分",S="秒")
        drawDate(a)
         
        time.sleep(2)
        turtle.clear()
        turtle.goto(-500,0)
         
    turtle.hideturtle()
    turtle.done()
main()

在這裏插入圖片描述

s =[[0,1,1,1,1,1,1],
     [0,1,0,0,0,0,1],#1
     [1,0,1,1,0,1,1],#2
     [1,1,1,0,0,1,1],#3
     [1,1,0,0,1,0,1],#4
     [1,1,1,0,1,1,0],#5
     
     [1,1,1,1,1,1,0],#6
     [0,1,0,0,0,1,1],#7
     [1,1,1,1,1,1,1],#8
     [1,1,1,0,1,1,1],] #9
import turtle as t
def draw(is_draw):
    t.pendown() if is_draw else t.penup()
    t.fd(20)
    t.rt(90)
    
def f(a):
    for i in a:
        i=eval(i)
        for j in range(0,6+1):
            if j==4:  t.left(90)
            draw(s[i][j])  
        t.rt(180)
        t.penup()
        t.fd(20)
        t.pendown()
    
def main():
    t.setup(1000, 350, 100, 100)
    t.penup()
    t.fd(-300)
    t.pensize(5)
    t.tracer(False)
    f("0987654321")
    t.done()
    
main()   
    
    
    
    
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章