首页
/
每日頭條
/
生活
/
python繪圖四種方式
python繪圖四種方式
更新时间:2025-07-01 07:01:55

在Python中繪圖時,需要導入圖形模塊turtle。“turtle”的意思是“海龜”,所以這個模塊又被稱為海龜圖形模塊。有一個比較出名的集成編程環境叫海龜編輯器,以積木的形式表示命令,編程過程由“寫代碼”變成了“搭積木”,積木本身有“帽子”、“凹凸”等形狀來限制拼接,就相當于自帶邏輯限制一樣,使用起來非常方便,很适合青少年和初學者入門學習,如果感興趣可以自行下載學習。

26.1 海龜畫圖的原理

圖形模塊turtle啟用了一個非常生動的對象——海龜,這隻海龜可以在畫布上按照指令走路,它攜帶那隻畫筆默認的為“落筆”狀态,走路時會留下印痕。如果被置于“擡筆”狀态,走路是不留印痕的,但可以通過“落筆”命令使畫筆落下,這樣,它所走過的軌迹就變成了我們想要的各種圖形。可以設置畫筆的各種屬性如顔色、粗細等來改變圖形的外觀,也可以設置海龜的行為改變它的速度、方向等來改變圖形的形狀。

26.2 從畫正方形開始

這裡,仍然使用IDLE作為開發環境。

首先通過一個例子——“畫正方形”來講述如何使用Python繪圖。

>>> import turtle as t #導入海龜圖形模塊

>>> t.forward(100) #海龜前進100步

運行上面的命令後,會在海龜圖形窗口中出現如下圖形:一段從窗口中心位置出發的帶箭頭的線段。窗口的中心位置即為海龜的初始位置,并且初始狀态的海龜的頭是水平向右的。默認的是落筆狀态,所以前進時就會留下印痕。

python繪圖四種方式(Python其實很簡單第二十六章)1

我們并沒有看到海龜,因為默認的是用箭頭表示海龜,可以用如下命令顯示出海龜的造型。

>>> t.shape('turtle') #将turtle的形狀設置為“海龜”造型

此時,圖形窗口中的箭頭就變成了海龜的樣子,如下所示:

python繪圖四種方式(Python其實很簡單第二十六章)2

海龜的頭是水平向右的,和剛才箭頭所指的方向是一緻的。如果要再次切換為箭頭造型,可以使用如下命令即可:

>>> t.shape('arrow')

接下來我們繼續畫正方形:

>>> t.right(90) #海龜右轉90度

>>> t.forward(100) #海龜前進100步,畫第二條邊

>>> t.right(90)

>>> t.forward(100) #畫第三條邊

>>> t.right(90)

>>> t.forward(100) #畫第四條邊

至此,一個完整的正方形就畫出來了。

26.3 畫筆的常用設置

1、落筆函數pendown()

如:

>>> t.pendown()

無論當前畫筆的狀态如何,執行此命令後都将設置為落筆狀态。

2、擡筆函數penup()

如:

>>> t.penup()

無論當前畫筆的狀态如何,執行此命令後都将設置為擡筆狀态。

3、設置畫筆的顔色pencolor(color)

如:

>>> t.pencolor('yellow')

若不帶參數,則相當于查詢畫筆的當前顔色,如:

>>> t.pencolor()

'yellow'

4、設置畫筆的粗細pensize(n),默認值為1

如:

>>> t.pensize(10) #将畫筆的粗細值設為10

若不帶參數,則相當于查詢畫筆的當前顔色,如:

>>> t.pensize()

10

26.4 海龜設置

1、海龜速度用speed()函數來設置,可以設定的參數有:“slowest”(最慢)、“slow”(慢速)、“normal”(正常速度)、“fast”(快速)、“fastest”(最快)。例如:

>>> t.speed("slow")

>>> t.circle(100) #以當前位置為圓心,畫半徑為100的圓

執行後,由于速度設為了慢速,可以明顯看到比較緩慢的軌迹。

2、藏龜、顯龜、查詢海龜顯示狀态

如前所說,海龜通常是用箭頭表示,也可以表示為完整的海龜模樣,甚至是其他。所謂的“藏龜”,就是将該标識隐藏掉,這樣所繪的圖形就看起來更完整。為了更清楚的掌握海龜所處的位置和方向以及畫筆的顔色,可以通過“顯龜”命令将其顯示出來。

如:

>>> t.ht() #藏龜

>>> t.isvisible() #查詢海龜顯示狀态

False

>>> t.st() #顯龜

>>> t.isvisible() #查詢海龜顯示狀态

True

3、查詢海龜位置position()和将海龜移動到指定位置goto(x,y)

position()函數可以查詢海龜當前位置,goto(x,y)函數可以将海龜移動到指定位置,x、y為坐标值。

如:

>>> t.position() #查詢海龜當前位置

(-0.00,-0.00)

>>> t.goto(100,100) #将海龜移動到指定位置

>>> t.position() #查詢海龜當前位置

(100.00,100.00)

26.5 畫布設置

畫布就是可以用來繪圖的區域。

1、函數screensize()可以設置畫布的寬度、高度、背景。

格式:turtle.screensize(canvwidth=None,canvheight=None,bg=None)參數:canvwidth:畫布的寬度,canvheight:畫布的高度,bg:畫布的背景。

2、函數setup()可以設置畫布的位置,它的大小既可以根據占屏比來确定,也可以設置為用像素表示的絕對值。

格式:turtle.setup(width=0.5,height=0.75,startx=None,starty=None)width和height:寬和高,整數表示像素,小數表示占據屏幕的比例;startx和starty:表示矩形窗口左上角頂點的位置,為空,則位于屏幕中心。

26.6 設置窗口背景顔色bgcolor(color)

如:

>>> t.bgcolor('blue')

執行後窗口背景變為藍色。

26.7 實例:畫四個不同顔色的正多邊形

最後,我們用一個實例結束本章内容:由四個不同顔色的正多邊形組成的圖形。

代碼如下:

import turtle as t

t.screensize(canvwidth=600,canvheight=480,bg='Thistle') #設置窗口大小及顔色

t.reset() #初始化

t.ht() #藏龜

t.pensize(1) #設置畫筆的顔色

t.penup() #擡筆

#以下定義了一個畫正多邊形的函數,參數包括起始點的坐标、邊數、邊長、顔色

def polygon(x,y,n,l,color):

t.goto(x,y) #海龜移動到指定位置

t.pendown() #落筆

t.color(color) #隻有一個參數時,既是畫筆顔色,又是填充顔色

t.begin_fill() #開始填充

for i in range(n):

t.forward(l) #海龜前進邊長的步數

t.right(360/n) #右轉一個外角的角度

t.end_fill() #結束填充

t.penup() #擡筆

polygon(-100,100,3,100,'red')

#在(-100,100)位置開始畫邊長為100的正三邊形,顔色填充為紅色

polygon(100,100,4,80,'blue')

#在(100,100)位置開始畫邊長為80的正四邊形,顔色填充為藍色

polygon(100,-100,6,60,'Purple')

#在(100,-100)位置開始畫邊長為60的正六邊形,顔色填充為紫色

polygon(-100,-100,36,10,'Pink')

#在(-100,-100)位置開始畫邊長為10的正三十六邊形,顔色填充為粉色

運行後效果如下:

python繪圖四種方式(Python其實很簡單第二十六章)3

關于t.reset()

它的作用是初始化圖形窗口,可以清除窗口,并且使海龜回到最初的狀态(包括位置和方向)。所以,執行此命令後一切都将和剛剛打開圖形窗口時一樣。

類似的還有turtle.clear()和turtle.clearscreen()函數,也能起到清屏的作用。

關于t.right(360/n)

從如下三幅圖可以看出,畫正n邊形時,當畫完一條邊之後,隻需要将方向右轉360/n就是下一條邊的方向。

python繪圖四種方式(Python其實很簡單第二十六章)4

正三邊形

python繪圖四種方式(Python其實很簡單第二十六章)5

正四邊形

python繪圖四種方式(Python其實很簡單第二十六章)6

正六邊形

關于正三十六邊形

正三十六邊形已經接近于一個圓了,所以可以采用畫正多邊形的方法來畫圓。缺點是,一般隻知道起始點,不知道圓心的位置,半徑也不好計算。在已知圓心和半徑時,還是采用circle(r)命令更好一些。

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
魅族今年有18x嗎
魅族今年有18x嗎
今天下午,魅族正式舉行了魅族有點東西秋季新品發布會,正式發布了魅族18X/18s/18sPro三款機型。作為魅族18/18Pro的小改款機型,18s/18sPro延續了包括屏幕、鏡頭模組、電池與充電規格等主要配置。而在機身配色上,獨角獸EV...
2025-07-01
幼兒正确佩戴口罩方法步驟
幼兒正确佩戴口罩方法步驟
幼兒正确佩戴口罩方法步驟?首先在佩戴口罩之前應該先洗幹淨雙手用肥皂正确的擦洗手背指縫進行手部消毒,我來為大家講解一下關于幼兒正确佩戴口罩方法步驟?跟着小編一起來看一看吧!幼兒正确佩戴口罩方法步驟首先在佩戴口罩之前應該先洗幹淨雙手。用肥皂正确...
2025-07-01
西海岸雙島的
西海岸雙島的
來源:人民網-人民日報海外版多巴哥島鴿子角海灘美景。特立尼達和多巴哥共和國駐華大使館供圖一邊瀕臨加勒比海,一邊面朝大西洋,大島特立尼達、小島多巴哥與21個較小島嶼構成了特多這個令人陶醉的雙島之國。其中,特立尼達島形如号角,因石油和天然氣工業...
2025-07-01
上海防疫措施最新公告
上海防疫措施最新公告
提供現制現售飲料的同時,還能讓顧客撸貓撸狗,近年來,從事寵物咖啡店等寵物互動體驗業态的經營者越來越多。在倡導“非必要不離滬”的當下,這些業态尤其受到一些正在過暑假的孩子及其家長的歡迎。來自天眼查的統計數據顯示,2016年至2020年在上海新...
2025-07-01
最完美的臉長什麼樣
最完美的臉長什麼樣
寫了很多美女類型,但其實有這麼一類姑娘,她們長相并不算完美或精緻,但就是自帶貴氣感,是人群裡最不能忽略的存在。她們往往沒有名牌logo加身,但一眼就讓人覺得這就是富家大小姐該有的樣子~不止外表,一舉一動更是充滿着疏離感,像見識過所有大場面,...
2025-07-01
Copyright 2023-2025 - www.tftnews.com All Rights Reserved