1. 程式人生 > >python-函式和程式碼複用—七段數碼管繪製和愛心

python-函式和程式碼複用—七段數碼管繪製和愛心

import turtle
def curvemove():
for i in range(200):
turtle.right(1)
turtle.forward(1)
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):
turtle.pencolor("red")
for i in date:
if i =='-':
turtle.write('大',font=("Arial",32,"normal"))
turtle.pencolor("green")
turtle.fd(40)
elif i=='=':
turtle.write('帥',font =("Arial",32,"normal"))
turtle.pencolor("blue")
turtle.fd(40)
elif i=='+':
turtle.write('比',font=("Arial",32,"normal"))
else:
drawDigit(eval(i))
def main():
turtle.setup(800,350,200,200)
turtle.penup()
turtle.fd(-200)
turtle.pendown()
turtle.color('red','pink')
turtle.pensize(2)
turtle.begin_fill()
turtle.left(140)
turtle.forward(111.65)
curvemove()
turtle.left(120)
curvemove()
turtle.forward(111.65)
turtle.end_fill()
turtle. penup()
turtle.goto(-250, 85)
turtle.pendown()
turtle.write("LOVE小香香", font=("Arial", 18, "normal"))
turtle.left(140)
turtle.fd(200)
turtle.pensize(5)
drawDate("520-=+")
turtle.hideturtle()
turtle.done()
main()

 

Turtle的運動方法:

  • turtle.forward(d): 命令箭頭移動d畫素
  • turtle.backward(d): 命令箭頭向指向的反方向移動d畫素,箭頭的指向不變
  • turtle.goto(x, y): 將箭頭移動到一個座標
  • turtle.home(): 將箭頭移動到起點(0,0)和向東
  • turtle.penup(): 擡起箭頭
  • turtle.pendown(): 放下箭頭
  • turtle.right(angle): 箭頭順時針旋轉angle度,同理left逆時針旋轉
  • turtle.setheading(angle): 將箭頭方向設定為指定角度。0——東、90——北、180——西、270——南
  • turtle.speed(s): 設定箭頭的速度為一個在1到10之間的整數,10最大

Turtle箭頭的顏色、填充和繪製方法

  • turtle.color("red"): 設定箭頭顏色為紅色
  • turtle.fillcolor("red"): 設定箭頭填充顏色為紅色
  • turtle.pensize(): 設定畫筆的寬度
  • turtle.begin_fill(): 在填充圖形前訪問這個方法
  • turtle.end_fill(): 在最後呼叫begin_fill之前填充繪製圖形
  • turtle.filling(): 返回填充狀態,Ture代表填充,False代表沒有填充
  • turtle.clear(): 清除視窗,箭頭的狀態和位置不受影響
  • turtle.reset(): 清除視窗,將狀態和位置復位為初始狀態
  • turtle.screensize(w, h): 設定畫布的寬度和高度
  • turtle.hideturtle(): 隱藏箭頭
  • turtle.showturtle(): 顯示箭頭
  • turtle.circle(r, ext, step): 繪製一個指定半徑、範圍和階數為r圓
  • turtle.write("string", font=("Arial", 8, "normal")): 繪製文字字串string,字型是由字型名、字型大小和字型型別三部分組成