#蛇.py import turtle #引入海龜庫 turtle.setup(650,350,200,200) #setup(寬,高 , 坐標,坐標)設置窗體大小及位置,4個參數后兩個可選(不是必須函數) turtle.penup() #畫筆抬起 turtle.fd(-250) #前進-250個像素 turtle.pendown() #畫筆落下 turtle.pensize(25) #改變畫筆尺寸為25像素 turtle.pencolor("purple") #使畫筆為紫色 turtle.seth(-40) #改變海龜方向為絕對40度(正右方為絕對0度) for i in range (4): #循環4次 turtle.circle(40,80) #改變海龜行進軌跡(40度為半徑,繪制80度) turtle.circle(-40,80) #改變海龜行進軌跡 (反向40度為半徑,繪制80度) turtle.circle(40,80/2) turtle.fd(40) #前進40像素 turtle.circle(16,180) #(r,angle) turtle.fd(40*2/3) #前進40*2/3像素 turtle.done() #提供手工關閉窗體離開選項
開頭所給出來的一個代碼僅是畫一條簡單的蛇,還有一些其他個人感覺在簡單圖形繪制中比較實用的代碼.
其實只要理解其中的內容就可以畫出許多想要的簡單圖形了。
個人有三個點要着重理解:
1)循環: for i in range()
循環的使用可以省去我們很多的步驟,同時也可以規避一些不必要的麻煩和使代碼更整潔。
例如在畫一條蛇中,我沒必要再去把縮進中的函數copy4次。這就是最直觀的效果。
2) 角度:海龜角度是用left,right ;絕對角度是用seth。
這個理解起來並不難,關鍵得靈活運用。在一些必要的“扭頭”動作,如果想不明白就直接seth,當然在循環體中則需要看需取用了。
3)縮進:
縮進放不好,歪圖沒得跑。這是要細心留意的。
對於運用turtle庫進行基本圖像繪制,其實並沒有太多的講究。
最簡單的方式就是自己畫一下。
例如你想畫個五角星,你用筆是怎么畫的,那么你用py就是怎么畫。
熟悉py的繪制方式,就可以輕松運用py進行簡單圖形繪制。
接下來就引入自己畫五角星的一個例子:
#畫一個五角星 import turtle #引入 turtle.setup(650,500,200,200) #設置窗體尺寸 turtle.pensize(1) #設置筆的尺寸(海龜身材) turtle.fillcolor("red") #設置填充顏色 turtle.begin_fill() #開填 for i in range(5): #循環5次 turtle.fd(200) #前進200像素 turtle.left(216) #海龜向左轉216° turtle.end_fill() #結束填充
在做這個東西的時候,我會自己先嘗試在紙上畫一個五角星。並記錄自己的步驟。
然后再算出必要的角度問題。

做到這里呢,基本上就能夠明白五角星到底是怎么畫的了。
我們都知道py引入海龜庫畫圖的原理:一個具有“方向感”的海龜在“游泳”。
我們所需要做的也僅僅是讓海龜按照我們的意圖去游而已。
如何做到這一前提?
顯然你是要熟悉海龜庫中的函數。
很多函數開始學是會有點點暈。
但一點點熟悉起來還是很好理解的,多用就行。
當然在愈發復雜的圖形中畫圖思路想出來是很困難的一件事情。
這就需要多多開動腦筋思考了。
附:turtle函數(網上摘錄)
畫筆的屬性
畫筆(畫筆的屬性,顏色、畫線的寬度等)
1) turtle.pensize():設置畫筆的寬度;
2) turtle.pencolor():沒有參數傳入,返回當前畫筆顏色,傳入參數設置畫筆顏色,可以是字符串如"green", "red",也可以是RGB 3元組。
3) turtle.speed(speed):設置畫筆移動速度,畫筆繪制的速度范圍[0,10]整數,數字越大越快。
| 命令 |
說明 |
| turtle.forward(distance) |
向當前畫筆方向移動distance像素長度 |
| turtle.backward(distance) |
向當前畫筆相反方向移動distance像素長度 |
| turtle.right(degree) |
順時針移動degree° |
| turtle.left(degree) |
逆時針移動degree° |
| turtle.pendown() |
移動時繪制圖形,缺省時也為繪制 |
| turtle.goto(x,y) |
將畫筆移動到坐標為x,y的位置 |
| turtle.penup() |
提起筆移動,不繪制圖形,用於另起一個地方繪制 |
| turtle.circle() |
畫圓,半徑為正(負),表示圓心在畫筆的左邊(右邊)畫圓 |
| setx( ) |
將當前x軸移動到指定位置 |
| sety( ) |
將當前y軸移動到指定位置 |
| setheading(angle) |
設置當前朝向為angle角度 |
| home() |
設置當前畫筆位置為原點,朝向東。 |
| dot(r) |
繪制一個指定直徑和顏色的圓點 |
| turtle.fillcolor(colorstring |
繪制圖形的填充顏色 |
| turtle.color(color1, color2) |
同時設置pencolor=color1,fillcolor=color2 |
| turtle.filling() |
返回當前是否在填充狀態 |
| turtle.begin_fill() |
准備開始填充圖形 |
| turtle.end_fill() |
填充完成 |
| turtle.hideturtle() |
隱藏畫筆的turtle形狀 |
| turtle.showturtle() |
顯示畫筆的turtle形狀 |
| turtle.mainloop()或turtle.done() |
啟動事件循環 -調用Tkinter的mainloop函數。 必須是烏龜圖形程序中的最后一個語句。
|
|||||||||
| turtle.mode(mode=None) |
設置烏龜模式(“standard”,“logo”或“world”)並執行重置。如果沒有給出模式,則返回當前模式。
|
|||||||||
| turtle.delay(delay=None) |
設置或返回以毫秒為單位的繪圖延遲。 |
|||||||||
| turtle.begin_poly() |
開始記錄多邊形的頂點。當前的烏龜位置是多邊形的第一個頂點。 |
|||||||||
| turtle.end_poly() |
停止記錄多邊形的頂點。當前的烏龜位置是多邊形的最后一個頂點。將與第一個頂點相連。
|
|||||||||
| turtle.get_poly() |
返回最后記錄的多邊形。
|
