先放代码:
#七段电子管绘制.py
import turtle as t
import random as r #导入随机库
import time
'''
t.setup(1000,400)
t.pensize(5)
t.colormode(1) #设置颜色模式为0-1
for i in range(4):
t.pencolor(r.random(),r.random(),r.random())
t.fd(100)
t.right(90)
t.left(90) #将画笔向左90度
for i in range(3):
t.pencolor(r.random(),r.random(),r.random())
t.fd(100)
t.right(90)
'''
#定义画线函数:
def drawLine(draw):
t.pendown() if draw else t.penup()
t.pencolor(r.random(),r.random(),r.random())
t.fd(80)
t.right(90)
#定义绘制0-9数字函数
def drawDigit(i):
drawLine(True) if i in [2,3,4,5,6,8,9] else drawLine(False) #画第1段的数值
drawLine(True) if i in [0,1,3,4,5,6,7,8,9] else drawLine(False) #画第2段的数值
drawLine(True) if i in [0,2,3,5,6,8] else drawLine(False) #画第3段的数值
drawLine(True) if i in [0,2,6,8] else drawLine(False) #画第4段的数值
t.left(90)
drawLine(True) if i in [0,4,5,6,8,9] else drawLine(False) #画第5段的数值
drawLine(True) if i in [0,2,3,5,6,7,8,9] else drawLine(False) #画第6段的数值
drawLine(True) if i in [0,1,2,3,4,7,8,9] else drawLine(False) #画第7段的数值
t.left(180) #画笔改为反方向旋转180度
t.penup() #为绘制第二个数字确定位置,向右移动20px
t.fd(20)
#定义绘制日期函数:
def drawDate(date):
for i in date:
drawDigit(eval(i))
#定义main函数:
def main():
t.setup(1000,350)
t.penup()
t.fd(-400)
t.pensize(5)
drawDate(time.strftime('%Y%m%d'))
t.hideturtle()
t.down()
#函数调用
main()
每个数字都由七段直线组成,只需要确定每个数字需要用到哪段直线,就可以通过循环画出想要的数字
效果如下: