七段数码管绘制

↘锁芯ラ 提交于 2019-12-02 16:47:19

步骤:

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()

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!