python—绘制七段数码管


 

 

 

import turtle,time
def drawGap():             #绘制线与线的间距
    turtle.penup()
    turtle.fd(6)

def drawLine(draw): #绘制数码管的每一条线 drawGap() #当笔落下开始画时,空6个像素 turtle.pendown() if draw else turtle.penup() #判断True为画,False为抬笔浮空 turtle.fd(40) #向前画40像素 drawGap() #画完后抬笔,浮空时,空6个像素 turtle.right(90) #画完线后,指标向右旋转90度
def drawDigit(digit): #绘制数码管的每个数字 # if digit in [2,3,4,5,6,8,9]: # drawLine(True) # else: # drawLine(False) 这个是下面的清晰版本,方便理解。下面是写在一行的格式。 drawLine(True) if digit in [2,3,4,5,6,8,9] else drawLine(False) drawLine(True) if digit in [0,1,3,4,5,6,7,8,9] else drawLine(False) drawLine(True) if digit in [0,2,3,5,6,8,9] else drawLine(False) drawLine(True) if digit in [0,2,6,8] else drawLine(False)
  #上面是画完4条线,指标回到开始位置,需要向左旋转指标,才能向上画线 turtle.left(90) drawLine(True) if digit in [0,4,5,6,8,9] else drawLine(False) drawLine(True) if digit in [0,2,3,5,6,7,8,9] else drawLine(False) drawLine(True) if digit in [0,1,2,3,4,7,8,9] else drawLine(False)
  #共七条线全部画完 turtle.left(180) #调整指标,画完指标是 < 这个方向,需要向左或向右旋转180度,画第二个数字 turtle.penup() turtle.fd(20) #浮空向前移动20像素(也就是两个数字间的距离是20像素)
def drawDate(date): #绘制日期 turtle.pencolor("red") #相当于修改了默认颜色为红色 for i in date: #下面的判断主要根据你输入或传过来的格式符号相对应(我这里传的系统当前时间,例:2019-4=23+) if i == '-': turtle.write('年',font=("Arial",18,"normal")) #通过write 设置字体和字号 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,800,200,200) turtle.penup() turtle.fd(-200) turtle.pensize(5) drawDate(time.strftime('%Y-%m=%d+',time.gmtime())) #设置时间格式 turtle.hideturtle() #画完后隐藏指标 #turtle.showturtle() #相反,画完后显示指标 turtle.done() time.sleep(1) main()

  


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM