1. 程式人生 > >從Python的turtle繪圖開始學習圖形化程式設計

從Python的turtle繪圖開始學習圖形化程式設計

Turtle

python2.6版本中後引入的一個簡單的繪圖工具,叫做海龜繪圖(Turtle Graphics),turtle庫是python的內部庫,使用匯入即可 :

 import turtle

畫布

畫布就是turtle為我們展開用於繪圖區域, 我們可以設定它的大小和初始位置

設定畫布大小

turtle.screensize(canvwidth=None, canvheight=None, bg=None)

引數分別為畫布的寬(單位畫素), 高, 背景顏色

比如:

turtle.screensize(1200, 900, "green")
turtle.screensize() #返回預設大小(400, 300)

或者使用百分比的方式來設定畫布大小

turtle.setup(width=0.5, height=0.75, startx=None, starty= None)

引數:
width, height: 輸入寬和高為整數時, 表示畫素; 為小數時, 表示佔據電腦螢幕的比例
(startx, starty): 這一座標表示 矩形視窗左上角頂點的位置, 如果為空,則視窗位於螢幕中心。

比如:

turtle.setup(width=0.3,height=0.3,startx=50,sterty= 50)

畫筆

畫筆的狀態

在畫布上,預設有一個座標原點為畫布中心的座標軸, 座標原點上有一隻面朝x軸正方向小烏龜. 這裡我們描述小烏龜時使用了兩個詞語:座標原點(位置),面朝x軸正方向(方向), turtle繪圖中, 就是使用位置方向描述小烏龜(畫筆)的狀態。

畫筆的屬性

turtle.pensize():設定畫筆的寬度
turtle.pencolor(); 沒有引數傳入,返回當前畫筆顏色,傳入引數設定畫筆顏色,可以是字串如"green", "red",也可以是RGB 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.speed(speed) 畫筆繪製的速度範圍[0,10]整數
turtle.circle() 畫圓,半徑為正(負),表示圓心在畫筆的左邊(右邊)畫圓

畫筆控制命令

命令 說明
turtle.pensize(width) 繪製圖形時的寬度
turtle.pencolor() 畫筆顏色
turtle.fillcolor(colorstring) 繪製圖形的填充顏色
turtle.color(color1, color2) 同時設定pencolor=color1, fillcolor=color2
turtle.filling() 返回當前是否在填充狀態
turtle.begin_fill() 準備開始填充圖形
turtle.end_fill() 填充完成;
turtle.hideturtle() 隱藏箭頭顯示;
turtle.showturtle() 與hideturtle()函式對應

全域性控制命令

命令 說明
turtle.clear() 清空turtle視窗,但是turtle的位置和狀態不會改變
turtle.reset() 清空視窗,重置turtle狀態為起始狀態
turtle.undo() 撤銷上一個turtle動作
turtle.isvisible() 返回當前turtle是否可見
stamp() 複製當前圖形
turtle.write(s[,font=("font-name",font_size,"font_type")]) 寫文字,s為文字內容,font是字型的引數,裡面分別為字型名稱,大小和型別;font為可選項, font的引數也是可選項

開始學習圖形化程式設計

匯入turtle模組並顯示箭頭

輸出/寫字串

前進指定畫素

修改畫筆顏色

箭頭左轉90度

去到指定座標

擡筆

下筆並畫圓

完整程式碼

>>> #匯入turtle 模組
>>> import turtle
>>> #顯示箭頭
>>> turtle.showturtle()
>>> #輸出/寫字串
>>> turtle.write("Hello turtle!!")
>>> #前進指定畫素
>>> turtle.forward(400)
>>> #修改畫筆顏色
>>> turtle.color("red")
>>> #箭頭左轉90度
>>> turtle.left(90)
>>> #去到指定座標
>>> turtle.goto(400,400)
>>> #擡筆
>>> turtle.penup()
>>> #這樣再去某個座標,路徑就不會畫出來
>>> turtle.goto(200,200)
>>> #下筆,這樣路徑就出來了
>>> turtle.pendown()
>>> #畫圓
>>> turtle.circle(-200)
>>> #正的表示向左畫圓的半徑,負數表示向右畫圓的半徑