Python初學系列——蟒蛇繪製及turtle庫的使用

Python初學系列——蟒蛇繪製及turtle庫的使用

環境要求
(1)python3
(2)最好有一個ide,我用的是最基本的pycharm

這是我根據mooc的教程寫下來的(視頻鏈接在文末),希望能給剛開始學習Python提供一個範例:
這篇博文,我們將繪製一條蟒蛇,並解釋turtle的使用。

首先我們設計一下蟒蛇的基本形狀,它是一條爬行的蟒蛇而且很有回頭感,並且後面會看到它是可以動的:
在這裏插入圖片描述這就要要用計算機圖形的繪製了,這與一般的簡單的測試程序是不一樣的,因爲要涉及到窗口等的出現:
先滿足大家的需求,給出全部的代碼:

# python.py
import turtle
turtle.setup(650,350,200,200)
turtle.penup()
turtle.fd(-250)
turtle.pendown()
turtle.pensize(25)
turtle.pencolor("purple")
turtle.seth(-40)
for i in range(4):
    turtle.circle(40,80)
    turtle.circle(-40,80)
turtle.circle(40,80/2)
turtle.fd(40)
turtle.circle(16,180)
turtle.fd(40 * 2/3)
turtle.done()
#finish

確保代碼無誤,執行後,就可以看到屏幕中出現窗口,並且出現了一個動態的,正在逐漸繪製的蟒蛇:
在這裏插入圖片描述直到全部完成
在這裏插入圖片描述從代碼中我們可以很明顯的看到使用了turtle這個庫,那麼每一行的代表什麼意思呢?
turtle意思是海龜,是一個繪圖庫,是python的標準庫之一(注意標準庫與第三方庫的區別),我們可以叫它海龜庫,這是這個程序最關鍵的地方。
turtle(海龜)是一種真實的存在,可以理解爲:
有一隻海龜,其實在窗體正中心,在畫布上游走;
走過的軌跡形成了繪製的圖形
海龜由程序控制,可以變換顏色,改變寬度等

再來看一下一些有趣的示例(使用turtle)
在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述

窗體佈局

在電腦顯示中,左上角的像素座標是(0,0),這裏的turtle統一如此,可以使用setup()函數來社會中窗體大小以及位置

turtle.setup(width,height,startx,starty)

(後兩個座標是可選的,指窗體左上角相對於屏幕左上角的座標)
在繪製過程中,setup函數並不是必須的,只有當你需要控制窗體的大小和位置時,採用setup進行限制。

例如:
在這裏插入圖片描述

空間座標體系

海龜最開始在畫布的正中心,以此構成絕對座標系,利用空間座標和函數,可以改變海龜的位置
如最重要的一個函數是
turtle.goto(x,y)
它可以讓任意位置的海龜去到達這個位置,例如:
在這裏插入圖片描述

運動控制函數

turtle.forward(d)別名turtle.fd(d)
d表示行進距離,如果行進距離是負數,表示海龜是倒退着行進的。
turtle.bd(d)是向海龜的反方向運行
turtle.circle(r,angle)這是曲線函數,圓心在海龜的左手側距離自己距爲r的地方,想要繪製完整圓形,不要寫第二個參數就好

角度座標體系

我們可以使用下面函數來改變當前海龜的行進角度
turtle.seth(angle)
這裏的angle是將海龜當前的行進方向改變爲某一個絕對角度(不是海龜方向,是絕對座標系中的絕對方向)
爲了更好改變方向,還可以分別從左右兩個方向改變角度(這個是海龜角度)
turtle.left(angle)
turtle.right(angle)
要注意的是,改變角度的函數只會改變方向,但是不會自動行進,需要配合其他函數,比如turtle.fd(d)來使用。
例如:
在這裏插入圖片描述現在我們再看上面的程序是不是感覺很熟悉了呢,雖然還是有些不是完全懂,彆着急,我們慢慢看下面:

畫筆控制函數

這裏將海龜想象爲畫筆pen
畫筆成對出現
turtle.penup()別名turtle.pu()擡起畫筆,海龜在飛行
turtlependown()別名turtle.pd()落下畫筆,海龜在爬行
另外:
turtle.pensize(width)用來設置畫筆寬度。
turtle.pencolor(color)設置顏色,裏面填rgb值。
這裏要注意要把rge壓成0-1(除以255即可)
在這裏插入圖片描述

循環結構與range

python循環語句最常用方式
for i(計數變量) in range(循環次數) 後面縮進的代碼將被循環執行
range()產生循環計數序列
range(n)
range(m,n)產生從m到n-1的整數序列
看到這個,基本上上面的蟒蛇代碼應該已經能全部看懂了,而且可以自己做出很多改變。這裏寫一下注釋:

# python.py
import turtle
turtle.setup(650,350,200,200)#設置窗體位置和大小
turtle.penup()
turtle.fd(-250)
turtle.pendown()#海龜飛起落下 這三行相當於海龜的原點改變了
turtle.pensize(25)
turtle.pencolor("purple")
turtle.seth(-40)#設置剛開始的絕對角度
for i in range(4):
    turtle.circle(40,80)
    turtle.circle(-40,80)#4繪製蟒蛇的4個小節
turtle.circle(40,80/2)#繪製少半個弧形
turtle.fd(40)
turtle.circle(16,180)#脖子和頭部繪製
turtle.fd(40 * 2/3)
turtle.done()#這行代碼使得程序運行後程序不會退出,需要手動關閉窗口
#finish

附加一句:
可以把import turtle調庫函數換成from turtle import*,這樣後面就可以不用一直加turtle.了,直接寫函數就ok,只要注意不要重名就可以,或者也可以import turtle as+別名的方式。

最後,送上視頻鏈接:
https://www.icourse163.org/learn/BIT-268001?tid=1207014257#/learn/announce(這是2019下半年的開課,應該每年都會有開課,講的真的很棒)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章