第二章 Python基本圖形繪製
一、深入瞭解Python語言
1.程式語言的發展: (1)機器語言:程式碼直接執行與CPU型號有關;(2)組合語言:有助記符,彙編器,與CPU型號有關;(3)高階語言:接近人類語言,編譯器,與CPU型號無關;(4)超級語言:具有強大的計算生態,整合開發。
Python是目前唯一一種超級語言。
2.Python特性: 簡潔性、通用性、生態性。
二、Python基本圖形繪製——turtle庫的使用
1.turtle庫概述 : 海龜庫是turtle繪圖體系的Python實現,turtle庫是Python的標準庫之一,也是入門級的繪相簿。
Python庫=標準庫+第三方庫 標準庫是隨直譯器直接安裝到作業系統中的功能模組;第三方庫是需要經過安裝才能使用的功能模組。
2.turtle繪圖窗體佈局
(1)turtle的繪圖窗體是一個畫布空間,最小單位是畫素。
(2)turtle.setup(width,height,startx,starty)函式用來設定啟動窗體的大小和位置。
(3)在繪製基本圖形的過程中setup()函式並不是必須的。
(4)若函式中只有兩個引數,例如:setup(800,400),則窗體寬800,高400,窗體位置預設在螢幕中心。
3.turtle的空間座標體系(絕對座標、海龜座標)
(1)絕對座標:
turtle.goto(x,y)函式是指讓海龜到達點(x,y)。
(2)海龜座標:
turtle.fd(d)函式是指讓海龜往正前方向進行。
turtle.bk(d)函式是指讓海龜往反方向進行。
turtle.circle(r,range)函式是指讓海龜以當前位置左側的某一個點為圓心,進行曲線運動。
4.turtle的角度座標體系
絕對角度:
turtle.seth(angle)函式改變當前海龜的行進角度,seth函式只改變行進方向但不行進
海龜角度:
turtle.right(angle)函式讓海龜向右旋轉一定角度改變執行方向
turtle.left(angle)函式讓海龜向左旋轉一定角度改變執行方向
5.RGB色彩體系
RGB是指紅綠藍這三種顏色通道並由這三種顏色進行的組合,能覆蓋視力所感知的所有色彩,每種顏色的取值範圍是0-255之間的所有整數或者0-1之間所有的小數。
turtle庫預設使用RGB的小數值來表示顏色
turtle.colormode(1.0):RGB小數值模式;turtle.colormode(255):RGB整數值模式
常用的RGB色彩:
三、turtle語法元素分析
1.庫引用與import
庫引用是擴充Python程式功能的一種方式,使用import保留字完成庫引用。
import的第一種使用方式:採用<庫名>.<函式名>(<函式引數>)編碼風格。
import的第二種使用方式:from<庫名>import<函式名>或者是from<庫名>import* 如下圖,對於turtle庫中的已有函式直接使用函式名即可,因為import的第二種使用方式會有函式名重名問題,所以第二種使用方式有弊端。
import的第三種使用方式:import<庫名>as<庫別名>,<庫別名>.<函式名>,庫別名是給呼叫的庫關聯一個更短、更適合自己的名字,可使程式碼更簡潔,如下圖:
2.turtle畫筆控制函式
(1)turtle.penup() 別名turtle.pu() ,抬起畫筆,相當於海龜在飛行,海龜執行的軌跡不在畫布上形成圖案。
(2)turtle.pendown() 別名turtle.pd(),落下畫筆,相當於海龜在爬行,海龜執行的軌跡在畫布上形成圖案。
(3)turtle.pensize(引數) 表明turtle.width(引數),用於設定畫筆寬度,直至下次畫筆設定之前,畫筆設定一直有效。
(4)turtle.pencolor(引數) 修改畫筆顏色的函式,引數可以有三種形式:(1)引數為字串:turtle.pencolor("purple") (2)引數為RGB的小數值:turtle.pencolor(0.63,0.13,0.94) (3)引數為RGB的元組值:turtle.pencolor((0.63,0.13,0.94))
3.turtle運動控制函式
運動控制函式可以控制海龜的前進方向,即可以控制海龜走直線或者曲線。
(1)turtle.forward(引數) 別名turtle.fd(引數),向前行進,相當於海龜走直線,引數是行進距離,單位是畫素,引數可以為負,為負數時海龜倒退。
(2)turtle.circle(r,extend) 有兩個引數,根據半徑r繪製一個extend角度的弧形,預設情況下,圓心位於海龜左側r距離的位置上,若r為負數,則圓心位於海龜右側。
4.turtle方向控制函式
控制海龜面對方向,包括絕對角度和海龜角度,方向控制函式只改變海龜的運動方向,並不會讓海龜行動。
絕對角度:
(1)turtle.setheading(angle) 別名turtle.seth(angle),將海龜的角度變成絕對座標系中的angle角度
海龜角度:
(1)turtle.right(angle)函式讓海龜向右旋轉一定角度改變執行方向
(2)turtle.left(angle)函式讓海龜向左旋轉一定角度改變執行方向
5.基本迴圈語句
for<變數>in range(<函式名>)
<被迴圈執行的語句>
range函式:產生迴圈計數序列的函式,有兩種用法:range(N)產生從0到N-1的整數序列,共N個;range(M,N)產生從M到N-1的整數序列,共N-M個。
6.“Python蟒蛇繪製程式碼分析”
1 import turtle 引入turtle庫 2 turtle.setup(650,350,200,200) 設定了繪圖窗體,窗體寬650畫素,高350畫素,位置的左上角的座標是(200,,200) 3 turtle.penup() 將畫筆抬起 4 turtle.fd(-250) 海龜倒退行進250個畫素 5 turtle.pendown() 海龜落下 6 turtle.pensize(25) 將畫筆寬度設定為25個畫素 7 turtle.pencolor(purple) 將畫筆顏色設定為紫色 8 turtle.seth(-40) 將海龜的方向改為絕對負40度方向 9 for i in range(4): 共迴圈四次 10 turtle.circle(40,80) 11 turtle.circle(-40,80) 12 turtle.circle(40,80/2) 13 turtle.fd(40) 海龜前進40個畫素 14 turtle.circle(16,180) 繪製一個半圓 15 turtle.fd(40*2/3) 海龜前進40*2/3個畫素的距離 16turtle.done() 作用:程式執行結束之後,不會自動退出,需要手動關閉視窗 1-5行相當於將海龜原點移動到了畫布的左側的一個位置上 9-11行是迴圈部分,控制海龜進行迴圈的曲線運動
程式執行結果:
2019-02-16