當前位置:
首頁 >
Python——七段数码管绘制
發布時間:2024/10/5
39
豆豆
生活随笔
收集整理的這篇文章主要介紹了
Python——七段数码管绘制
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
基本概念
七段數碼管:七段數碼管(?seven-segment indicator)由?7?段數碼管拼接而成,每段有亮或不亮兩種情況,改進型的七段數碼管還包括一個小數點位置。
源代碼
版本一
# DrawSevenDisplay.py import turtle import datetimedef drawGap(): # 繪制數碼管間隔turtle.penup()turtle.fd(5)def drawLine(draw): # 繪制單段數碼管drawGap()turtle.pendown()if draw else turtle.penup()turtle.fd(40)drawGap()turtle.right(90)def drawDigit(digit): # 根據數字繪制數碼管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)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)turtle.penup()turtle.fd(20)def drawDate(date):turtle.pencolor('red')for i in date:if i == '-':turtle.write('年',font=('Arial',18,'normal'))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,350,200,200)turtle.penup()turtle.fd(-350)turtle.pensize(5)drawDate(datetime.datetime.now().strftime('%Y-%m=%d+'))turtle.hideturtle()turtle.done() main()版本二?
/********************************手動輸入日期顯示********************************/import turtledef drawline(draw): ? ? ?#繪制單段數碼管?turtle.pendown()if draw else turtle.penup() ? #如果draw是真值就讓海龜畫筆落下 否則抬起turtle.fd(40)turtle.right(90)def drawdigit(digit): ? ? ? #根據數字繪制七段數碼管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)#前四段數碼管繪制完成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)turtle.penup() ? ? ?turtle.fd(20) ? ? ? #為繪制后續數字確定位置def drawdate(date):for i in date:drawdigit(eval(i))def main():turtle.setup(1200,550,200,200)turtle.penup()turtle.fd(-500)turtle.pensize(5)drawdate('2018')turtle.penup()turtle.fd(90)drawdate('04')turtle.penup()turtle.fd(90)drawdate('20')turtle.hideturtle()turtle.done()main()版本三?
/********************************用time函數獲取當前時間,顯示實時時間********************************/import turtle,timedef drawline(draw): ? ? ?#繪制單段數碼管?turtle.pendown()if draw else turtle.penup() ? #如果draw是真值就讓海龜畫筆落下 否則抬起turtle.fd(40)turtle.right(90)def drawdigit(digit): ? ? ? #根據數字繪制七段數碼管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)#前四段數碼管繪制完成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)turtle.penup() ? ? ?turtle.fd(20) ? ? ? #為繪制后續數字確定位置def drawdate(date):turtle.pencolor("red")for i in date:if i=='-':turtle.write('年',font=("Arial",18,"normal"))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(1200,550,200,200)turtle.penup()turtle.fd(-500)turtle.pensize(5)drawdate(time.strftime('%Y-%m=%d+',time.gmtime()))turtle.hideturtle()turtle.done()main()版本四
#繪制七段數碼管 import turtle import time def drawGap():#繪制數碼管間隔turtle.penup()turtle.fd(5) def drawLine(draw): #繪制單段數碼管drawGap()turtle.pendown()if draw else turtle.penup()turtle.fd(40)drawGap()turtle.right(90) def drawDigit(digit): #根據數字繪制數碼管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)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)turtle.penup()turtle.fd(20) def drawDate(date): #date為日期,數據格式為%Y-%m=%d+turtle.pencolor('red')for i in date:if i == '-':turtle.write('年',font=('Arial',18,'normal'))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,350,200,200)turtle.penup()turtle.fd(-300)turtle.pensize(5)drawDate(time.strftime('%Y-%m=%d+',time.gmtime()))turtle.hideturtle()turtle.done() main()?
參考文章
https://blog.csdn.net/weixin_41815104/article/details/80024716
https://blog.csdn.net/yubing525/article/details/81148523
總結
以上是生活随笔為你收集整理的Python——七段数码管绘制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python——随机法(蒙特卡罗方法)计
- 下一篇: Python——科赫曲线绘制