七段數碼管繪制


步驟:

1.觀察數字0-9,找出規律。如圖:

 

 

1-1.順序: g-c-d-e-f-a-b  (從g開始向右畫線段,轉彎,畫線,轉彎,畫線,轉彎,這樣畫數字比較有規律,不會走重復路線,也方面使用for 循環)

以‘2’為例,第一筆為g,相同規律的還有3,4,5,6,8,9,把這些數字建成列表。

以此類推:第二筆為c:0, 1, 3, 4, 5, 6, 7, 8, 9

第三筆為d:0, 2, 3, 5, 6, 8, 9

......

 

2.導入turtle,time庫

3.開始畫圖

4.關鍵:4-1.畫出一個數字

              4-2.畫出2019,10, 28 一串數字

              4-3.畫出年,月,日 並格式化

import turtle     #導入海龜庫
import time      #導入時間庫
t = turtle.Pen()        #生成畫筆
t.shape("turtle")      #畫筆形狀
t.speed(0)              #畫筆速度

def drawGap():         #定義畫筆空隙
    t.up()
    t.fd(5)
    t.down()


def drawline(flag):      #定義畫筆,if成立開始畫線,不成立則拿起畫筆走“虛線”
    if flag:              #(不管條件成不成立,畫筆都要往前走並向右轉90度)
        t.down()
    else:
        t.up()
    t.fd(40)
    t.right(90)

def drawdigit(num):          #開始畫數字,如果在數字列表里,走畫出相應的線段
    drawline(True) if num in [2, 3, 4, 5, 6, 8, 9] else drawline(False)
    drawline(True) if num in [0, 1, 3, 4, 5, 6, 7, 8, 9] else drawline(False)
    drawline(True) if num in [0, 2, 3, 5, 6, 8, 9] else drawline(False)
    drawline(True) if num in [0, 2, 6, 8] else drawline(False)
    t.left(90)
    drawline(True) if num in [0, 4, 5, 6, 8, 9] else drawline(False)
    drawline(True) if num in [0, 2, 3, 5, 6, 7, 8, 9] else drawline(False)
    drawline(True) if num in [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] else drawline(False)
    t.up()                  #拿起筆,向左轉180,再向前走20,為畫下一個數字准備
    t.left(180)
    t.fd(20)

    # if num in [2, 3, 4, 5, 6, 8, 9]:
    #     t.down()
    #     t.fd(40)
    #     t.right(90)
    # if num in [0, 1, 3, 4, 5, 6, 7, 8, 9]:
    #     t.fd(40)
    #     t.right(90)
    # if num in [0, 2, 3, 5, 6, 8, 9]:
    #     t.fd(40)
    #     t.right(90)

# drawdigit(2)

def get_data(data):         #定義得到數據,並時間格式改為2019年10月28日
    for i in data:
        if i == '/':
            t.write('', font=("Arial", 20, "normal"))
            t.pencolor('green')
        elif i == '-':
            t.write('', font=("Arial", 20, "normal"))
            t.pencolor('blue')
            t.up()
            t.fd(40)
            t.down()
        elif i == '+':
            t.write("", font=("Arial", 20, "normal"))
            t.up()
            t.goto(-200, 100)
            t.down()
            t.write("Happy Day ", font=("Arial", 40, "normal"))
        else:
            drawdigit(eval(i))

def main():           #定義一個主流程
    t.up()
    t.backward(300)
    t.down()
    t.pencolor("red")
    t.pensize(5)
    get_data(time.strftime('%Y/%m-%d+', time.gmtime()))
    t.hideturtle()

main()

turtle.done()

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM