1. 程式人生 > 程式設計 >Python使用Turtle庫繪製一棵西蘭花

Python使用Turtle庫繪製一棵西蘭花

Turtle庫是Python中一個強大的繪製圖像的函式庫,靈活使用Turtle庫可以繪製各種好看的影象。

下面介紹使用Turtle庫繪製一棵西蘭花。

繪製一棵西蘭花,從主幹出發以一定的角度向左向右生成對稱的枝幹,再從每個枝幹出發向左向右生成對稱的枝幹,迴圈此動作,並最終繪製出一棵漂亮的西蘭花。

首先匯入Turtle庫,並設定畫筆大小、畫筆速度及顏色,並隱藏畫筆

from turtle import Turtle
p=Turtle()
p.pensize(5)
p.color(clr)
p.hideturtle()
p.getscreen().tracer(30,0)

設定起始方向以及位置(螢幕中心為座標原點)

p.left(90)
p.penup()
p.goto(x,y)
p.pendown()

設定畫筆完成之後,開始繪製西蘭花,首先繪製從開始畫位置向著預定的方向前進一段距離,並向左向右分成兩個對稱的分支

p.forward(l)
q=p.clone()
p.left(a)
q.right(a)

每完成一次分支後就將兩個分支物件新增到list中,並通過遍歷list完成整個影象的繪製

def tree(plist,l,a,f):
  if l>5:
    lst=[]
    for p in plist:
      p.forward(l)
      q=p.clone()
      p.left(a)
      q.right(a)
      lst.append(p)
      lst.append(q)
    tree(lst,l*f,f)

在程式中通過遞迴呼叫完成了一棵西蘭花的繪製。

程式剩餘程式碼如下:

 def maketree(x,y,clr):
  p=Turtle()
  p.pensize(5)
  p.color(clr)
  p.hideturtle()
  p.getscreen().tracer(30,0)
  #p.speed(10)
  p.left(90)
  p.penup()
  p.goto(x,y)
  p.pendown()
  t=tree([p],200,20,0.6375)
  #print(len(p.getscreen().turtles()))

def main():
  maketree(0,-300,"green")

main()

以上這篇Python使用Turtle庫繪製一棵西蘭花就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。