大家用Python-turtle庫作圖畫出過哪些漂亮的樹哇 ？
以前沒發現啊，python的IDLE裡面自帶了turtlee的一大堆例項，就在help-turtle demo裡面，截下來大家看看，裡面還有一些動圖也很不錯的：  原回答： 沒有編過程，初嘗python，循著大神們的軌跡，用turtle畫了兩張圖來練練手，就目前接觸到的，程式畫圖主要有兩種： 一是類似於小豬佩奇、哆啦A夢這種的，用大量的圖形一筆一筆勾勒出來，其實這種圖用python還沒ppt來的快，很多曲線不知道其方程的話甚至不好規劃，只能用橢圓、圓這些常見的來代替，這是我畫的一個QQ企鵝，雖然每一步很簡單，但真的需要很多步。。。 以下原始碼： import turtle as tfrom math import *#定義一個橢圓def  ellipse(m,n,a):    t.goto(m,n)    t.setheading(0)    t.pd()    t.begin_fill()    b=a/5for i in range(120):if 0<=i<30 or 60<=i<90:            a=a+b            t.lt(3)            t.fd(a)else:            a=a-b            t.lt(3)            t.fd(a)    t.end_fill()    t.pu()return#初始設定t.screensize(400,400,"white")t.pensize(4)t.pencolor("black")t.speed(0)t.ht()t.pu()#畫頭t.goto(150,100)t.setheading(90)t.pd()t.fillcolor("black")t.begin_fill()t.circle(200,180)t.lt(60)t.circle(400,60)t.end_fill()t.fillcolor("red")t.begin_fill()t.rt(60)t.circle(-60,60)t.rt(60)t.circle(-460,60)position1=t.pos()#存下座標待會畫肚子起點t.rt(60)t.circle(-60,60)t.rt(60)t.circle(400,60)t.end_fill()t.pu()#眼睛,4個橢圓t.pencolor("white")t.fillcolor("white")ellipse(0,130,0.5)ellipse(-100,130,0.5)t.pencolor("black")t.fillcolor("black")ellipse(-10,160,0.18)ellipse(-90,160,0.18)#嘴巴t.goto(-180,98)t.pd()t.pencolor("orange")t.fillcolor("orange")t.pd()t.setheading(30)t.begin_fill()t.circle(-260,60)t.rt(120)t.circle(-260,60)t.end_fill()t.pu()t.goto(-150,99)t.setheading(-30)t.fillcolor("black")t.begin_fill()t.circle(200,60)t.rt(150)t.circle(-115.47,120)t.end_fill()t.pu()#肚子t.goto(position1)t.pd()t.pencolor("black")t.fillcolor("black")t.begin_fill()t.setheading(-150)t.circle(200,60)t.lt(90)t.circle(50,90)t.rt(180)t.circle(280,180)t.rt(180)t.circle(50,90)t.lt(90)t.circle(200,60)t.setheading(-150)t.circle(-460,60)t.end_fill()t.pu()t.fillcolor("white")t.pencolor("white")t.begin_fill()t.goto(-270,30)t.pd()t.setheading(-120)t.circle(250,240)t.setheading(-150)t.circle(-433,60)t.end_fill()t.pu()#畫腳t.goto(position1)t.setheading(0)t.fd(90)t.rt(90)t.fd(365)position2=t.pos()t.pd()t.pencolor("black")t.fillcolor("orange")t.begin_fill()t.setheading(-180)t.circle(30,90)t.lt(60)t.circle(110,60)t.goto(position2)t.end_fill()t.pu()t.goto(position2)t.setheading(0)t.fd(280)position3=t.pos()t.pd()t.begin_fill()t.setheading(0)t.circle(-30,90)t.rt(60)t.circle(-110,60)t.goto(position3)t.end_fill()t.pu()t.done() 二是需要用一些迭代演算法實現的圖，主要就是大家常畫的python樹，這個就是python畫圖的優點了，雖然比之專業作圖軟體肯定不如，但turtle嘛，本來就是給大家玩一玩的，這種圖和上面的思路就完全不一樣了，很好的體現除了程式畫圖的特點，模組清晰，程式碼簡潔，功能強大。 以下原始碼： import turtle as timport randomdef flower(r):    heading=t.heading()    t.pd()    t.pencolor("red")    t.fillcolor("red")    t.begin_fill()for i in range(5):        t.circle(r,144)        t.rt(72)    t.end_fill()    t.setheading(heading)    t.pencolor("black")    t.fillcolor("black")    t.pu()returndef tree(n,l):if n>0:        t.pensize(2*n)        t.pd()        t.fd(l)if random.randint(0,2) == 0:            t.pu()            t.bk(l/2)            rf = 1+4*random.random()            flower(rf)            t.fd(l/2)        a=20*random.random()+10#右轉b=20*random.random()+10#左轉d = l * (random.random() * 0.25 + 0.7) #枝幹長度t.rt(a)        tree(n-1,d)        t.lt(a+b)        tree(n-1,d)        t.rt(b)        t.pu()        t.bk(l)def snow(m):    t.pencolor("white")    t.fillcolor("white")for i in range(m):        a = 400 - 800 * random.random()        b = 600 - 800 * random.random()        t.pu()        t.goto(a,b)        rsnow = 5 * random.random()        t.pd()        t.begin_fill()        t.circle(rsnow)        t.end_fill()returnt.screensize(400,400,bg ="lightpink")t.setheading(90)t.ht()t.pu()t.goto(-150,-400)t.pd()t.pensize(14)t.fd(100)t.speed(0)tree(7,100)snow(200)t.done() 這就是常規的兩種思路畫圖的方法，期待能有更多的不同的思路畫出的圖。