#!/usr/bin/env python
coding: utf-8
# 七段电子数码管的绘制
## 0、导入库
# In[20]:
import turtle #导入画图模块,方法前面必须加库名turtle
from turtle import * #导入turtle画图库,方法前面不能添加库名
from random import * #随机库,不能加
import time #时间库,加
## 1、绘制单段间隔
In[21]:
def drawGap():
penup() #画笔飞行模式
fd(5) #画笔前进5像素
## 2、绘制单段数码管
In[22]:
def drawLine():
drawGap() #调用间隔函数
if draw:
pendown() #工作模式
else:
penup()
fd(40)
drawGap() #调用间隔函数
right(90)
## 3、根据数字绘制数码管数字(绘制单个数字)
In[45]:
def drawDigit(dight):
pencolor(random(),random(),random())
drawLine(True) if digit in[2,3,4,5,6,8,9] else drawLine(False)
'''
if digit in [2,3,4,5,6,8,9]:
drawLine(Ture)
else:
drawLine(False)
'''
pencolor(random(),random(),random())
drawLine(True) if digit in[0,1,3,4,5,6,8,9] else drawLine(False)
pencolor(random(),random(),random())
drawLine(True) if digit in[0,2,3,5,6,8,9] else drawLine(False)
pencolor(random(),random(),random())
drawLine(True) if digit in[0,2,6,8] else drawLine(False)
left(90)
pencolor(random(),random(),random())
drawLine(True) if digit in[0,4,5,6,8,9] else drawLine(False)
pencolor(random(),random(),random())
drawLine(True) if digit in[1,4] else drawLine(False)
pencolor(random(),random(),random())
drawLine(True) if digit in[0,1,2,3,4,7,8,9] else drawLine(False)
pencolor(random(),random(),random())
left(180)
penup()
fd(20)
## 4、获取要绘制(输出)的数字(现在键盘上输入,再在系统中获取)
In[42]:
def drawData(date):
for i in date:
if i==' -':
write('年',font=("楷体",20,"normal"))
fd(40)
elif i==' =':
write('月',font=("楷体",20,"normal'"))
fd(40)
elif i=='+':
write('日',font=("楷体",20,"normal"))
else:
drawDigit(eval(i))
## 5、编写主函数(设置画笔和画布大小、颜色等属性)
In[27]:
def main():
setup(850,350)
penup()
fd(-350)
bgcolor('black')
pensize(10)
drawData(input('请输入你的生日:'))
hideturtle()
done()
## 6、调用主函数,输出效果图
In[28]:
if __name__=='__main__':
main()