- Python圖形化編程(微課版)
- 高永梅 楊乃如 盧海軍主編
- 1547字
- 2024-07-05 17:14:12
任務1.3 繪制簡單圖形——紅色三角形

1.9
一、任務描述
簡單圖形有很多種,如三角形、四邊形、五邊形、圓形等。它們雖然簡單,但也有一定的規律,如圓形有半徑,三角形有邊長和內角等。本任務要求繪制一個紅色的等邊三角形,圖形大小和位置自行設置。效果如圖1-49所示。

圖1-49 效果
二、相關知識
Python為用戶提供了非常完善的基礎代碼庫,而turtle庫是其中一個很流行的圖像繪制的函數庫,又被稱為海龜作圖庫??梢詫⒗L制過程想象成一只小海龜在一個橫軸為x、縱軸為y的坐標系中,從原點(0,0)位置,根據一組函數指令在這個平面坐標系中移動,通過它爬行的路徑繪制圖形。在使用turtle庫之前,首先需要導入turtle庫,設置窗體屬性,再通過調用turtle庫中的函數指令繪制圖形。turtle庫常見的函數及其說明見本書附錄。
1.導入turtle庫
導入turtle庫有3種方式:直接導入、導入庫并為庫取別名,以及導入庫中所有的類、函數及變量等。

2.turtle窗體布局
圖1-50展示了計算機屏幕與turtle窗體的位置關系,計算機屏幕左上角的坐標為(0,0),坐標(startx,starty)是turtle窗體的左上角位置,height為turtle窗體的高度,width為turtle窗體的寬度。需要強調的是,在turtle窗體內部有一個畫布,畫布也有一個坐標系,如圖1-51所示,該坐標系的原點(0,0)在畫布的中心位置,海龜默認的運動方向為x軸正方向。

圖1-50 窗體布局

圖1-51 坐標體系
3.相關turtle庫函數說明
●turtle.setup(width,height[,startx,starty]):設置窗體大小,前兩個參數分別表示窗體的寬和高,后兩個參數表示窗體在屏幕上的位置省略后面兩個參數時,窗體默認在計算機屏幕中心。
●turtle.pencolor(color):若沒有參數傳入,則返回當前畫筆顏色;若傳入參數表示設置畫筆顏色,參數值可以是字符串如“green”“red”等,也可以是RGB三元組。
●turtle.fillcolor(colorstring):設置圖形的填充顏色。
●turtle.color(color1,color2):同時設置畫筆顏色(pencolor=color1)和填充顏色(fillcolor=color2)。如果只有一個參數值,則說明畫筆顏色和填充顏色相同。
●turtle.begin_fill():在繪制要填充的形狀之前調用。
●turtle.end_fill():填充上次調用begin_fill()之后繪制的形狀。
●turtle.forward(distance)|turtle.fd(distance):向當前畫筆方向移動distance個像素。
●turtle.backward(distance)|turtle.bk(distance)|turtle.back(distance):向當前畫筆相反方向移動distance個像素。
●turtle.goto(x,y):將畫筆移動到坐標為(x,y)的位置。
●turtle.penup():提筆,移動時不繪制圖形,用于另起一個地方繪制。
●turtle.pendown():落筆,移動時繪制圖形。
●turtle.right(angle)|turtle.rt(angle):順時針移動旋轉,旋轉角度為參數angle。
●turtle.left(angle)|turtle.lt(angle):逆時針移動旋轉,旋轉角度為參數angle。
三、任務分析
任務要求繪制紅色三角形,需要設置畫筆顏色和填充顏色;繪制三角形實際上是先繪制一條線段,然后旋轉一定角度,重復上述動作,直到完成圖形繪制,需要用到forward()函數和left()函數或right()函數;圖形內部填充顏色需要用到begin_fill()和end_fill()函數。繪制三角形時,旋轉的角度計算方式如圖1-52所示。

1.10

圖1-52 繪制圖形分析
四、任務實現
(1)在PyCharm中,右擊左側列表中的項目名稱chapter01,選擇“New”→“Python File”,如圖1-53所示。在彈出的對話框中將文件命名為“1-3 繪制圖形.py”,按“Enter”鍵,進入代碼編輯界面。

圖1-53 新建Python文件
(2)在新建的Python文件中,輸入下面的代碼,實現導入turtle庫、設置窗體大小。選擇“Run”→Run'1-3繪制圖形'”,運行代碼,可以看到會彈出白色窗體。

(3)繪制紅色三角形。將畫筆顏色和填充顏色設置為紅色,繪制圖形前先開啟填充指令,圖形繪制結束后調用結束填充指令對圖形進行顏色填充。三角形的繪制方法是:調用forward(200)函數繪制200個單位長度的線段,再調用left(120)使海龜前進的方向。向左旋轉120°,重復上述操作兩次繪制另外兩條邊,即可完成三角形的繪制。在步驟(2)預留繪制三角形的位置,輸入繪制代碼并運行。


拓展任務:繪制圖形——簡單圖形
(1)模仿繪制紅色三角形的方法繪制內部無填充的圓形、綠色的正方形、藍色的五邊形、紫色線條/粉色填充的六邊形,圖形大小和位置自行設置。
(2)使用turtle庫不僅可以繪制簡單圖形,還可以繪制出炫彩的螺旋線、動畫等。學習者可以自行練習嘗試。

1.11