Python實例之七段數碼管繪製

基本思路:
1.繪製單個數字對應的數碼管
2.獲得一串數字,繪製對應的數碼管
3.獲得當前系統時間,繪製對應的數碼管

七段數碼管對應線條:
在這裏插入圖片描述

首先,繪製單個數字對應的數碼管函數:

def drawGap():#繪製數碼管間隔
    turtle.penup()
    turtle.fd(5)
def drawLine(draw): 
	drawGap()
    if (draw):
        turtle.pendown()
    else:
        turtle.penup()
    turtle.fd(40)
    turtle.right(90)

之後,根據數字繪製七段數碼管:

def drawDigit(digit):#根據數字繪製七段數碼管
    if digit in [2,3,4,5,6,8,9]:#1
        drawLine(True)
    else:
        drawLine(False)
    if digit in [0,1,3,4,5,6,7,8,9]:#2
        drawLine(True)
    else:
        drawLine(False)        
    if digit in [0,2,3,5,6,8,9]:#3
        drawLine(True)
    else:
        drawLine(False)
    if digit in [0,2,6,8]:#4
        drawLine(True)
    else:
        drawLine(False)

    turtle.left(90)#左轉90度
    
    if digit in [0,4,5,6,8,9]:#5
        drawLine(True)
    else:
        drawLine(False)
    if digit in [0,2,3,5,6,7,8,9]:#6
        drawLine(True)
    else:
        drawLine(False)
    if digit in [0,1,2,3,4,7,8,9]:#7
        drawLine(True)
    else:
        drawLine(False)
    turtle.left(180)
    turtle.penup()#爲繪製後續數字確定位置
    turtle.fd(20)#爲繪製後續數字確定位置

將數字串轉換成單個數字:

def drawDate(date):
    for i in date:
        drawDigit(eval(i))

定義主函數:

def main():
    turtle.setup(800,350,200,200)
    turtle.penup()
    turtle.fd(-300)
    turtle.pensize(10)
    drawDate('20200630')
    turtle.hideturtle()
    turtle.done()

程序運行結果如下:
在這裏插入圖片描述
接下來,獲得當前系統時間,用於繪製對應的數碼管。

修改drawDate函數:

def drawDate(date):#data爲日期,格式爲‘%Y-%m=%d+’
    turtle.pencolor("red")
    for i in date:
        if i=='-':
            turtle.write('年',font=('Arial',18,"normal"))
            turtle.pencolor("green")
            turtle.fd(40)
        elif i=='=':
            turtle.write('月',font=('Arial',18,"normal"))
            turtle.pencolor("blue")
            turtle.fd(40)
        elif i=='+':
            turtle.write('日',font=('Arial',18,"normal"))
        else:
            drawDigit(eval(i))

主函數:

def main():
    turtle.setup(800,350,200,200)
    turtle.penup()
    turtle.fd(-300)
    turtle.pensize(10)
    drawDate(time.strftime('%Y-%m=%d+',time.gmtime()))
    turtle.hideturtle()
    turtle.done()

修改後的程序結果如圖:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章