目錄python
七段數碼管git
turtle繪圖體系 --> 七段數碼管繪製ide
步驟1: 繪製單個數碼管模塊化
import turtle def drawLine(draw): # 繪製單段數碼管 turtle.pendown() if draw else turtle.penup() 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) # 爲繪製後續數字肯定位置
步驟2: 獲取一段數字,繪製多個數碼管函數
import turtle def drawLine(draw): # 繪製單段數碼管 turtle.pendown() if draw else turtle.penup() 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)) #經過eval()函數將數字變爲整數 def main(): turtle.setup(800, 350, 200, 200) turtle.penup() turtle.fd(-300) turtle.pensize(5) drawDate('20181010') turtle.hideturtle() turtle.done() main()
import turtle 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): #得到要輸出的數字 for i in date: drawDigit(eval(i)) #經過eval()函數將數字變爲整數 def main(): turtle.setup(800, 350, 200, 200) turtle.penup() turtle.fd(-300) turtle.pensize(5) drawDate('20181010') turtle.hideturtle() turtle.done() main()
步驟3:得到當前系統時間,繪製對應的數碼管3d
import turtle, time import turtle 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): #data爲日期,格式爲 '%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()