python turtle 颜色数字_python的绘图利器--海龟绘图turtle
我們之前提到Python是一種超級(jí)語言,因?yàn)槠涮峁┝藰O其豐富的庫,需要什么拿來黏合一下就可以直接使用。就像現(xiàn)在的有些汽車工廠一樣,根本不用重新發(fā)明生產(chǎn)什么,只需要買來相應(yīng)部件等把它們組裝起來就好。
作為你學(xué)習(xí)python的第一個(gè)程序,樹哥決定直接來一個(gè)實(shí)戰(zhàn)干貨程序:利用海龜turtle來畫一個(gè)奧運(yùn)五環(huán)。這樣就既可以理解庫的概念和使用,又可以理解程序的基本概念。
閑話少敘,直接上程序:
C2CD5756-27DB-4658-AE38-3228803B2C10.png
總共26行代碼,樹哥建議你把每行代碼敲進(jìn)去執(zhí)行一下,你會(huì)發(fā)現(xiàn)執(zhí)行的效果如下圖:
4E7FA906-A667-49FB-AB24-18680ACA9EC4.png
這26行代碼說多不多,不過對(duì)于沒有看過代碼的人來講,可能會(huì)有點(diǎn)壓力。
不過可以想到的是,這5個(gè)環(huán)畫法都一樣,再看到那么多長得很像的代碼,就知道重復(fù)的代碼很多,也難不在哪里。
我們把這段代碼先分成幾個(gè)部分,如下圖:
B9A7490F-3A8C-4B64-B15E-3CCB5819C743.png
從這張圖中可以看出來,程序就分為兩個(gè)主體部分:
- 公共部分
- 畫圖部分
當(dāng)然,你可能會(huì)說,結(jié)尾不是還有一句:P.done()嗎?
這個(gè)語句是個(gè)固定格式,有這句話畫完圖,繪圖窗口還保留,如果沒有這句話,繪圖窗口就直接關(guān)閉了,所以初期都加上就好了。
下面,我們就進(jìn)入正題:
公共設(shè)置
公共設(shè)置的第一條import turtle
import是導(dǎo)入,turtle是海龜繪圖庫,所以這句話就是導(dǎo)入海龜會(huì)圖庫的意思,記住就可以了。
turtle是一個(gè)專門用于繪圖的庫,需要畫圖的時(shí)候我們直接import一下就好,在此需要說明的有兩點(diǎn):
- 其他庫也一樣,直接import一下就好,例如:pyquery 網(wǎng)頁解析庫, pymysql 存儲(chǔ)庫等等。
- 安裝python的時(shí)候自帶的turtle庫被稱作標(biāo)準(zhǔn)庫,需要另外安裝的庫稱作第三方庫。也就是說,第三方庫必須先安裝,再import。
第二條:p = turtle
這條語句相當(dāng)于把給turtle起了個(gè)比較短的名字叫做p,如果沒有這條語句的話,那么下面的語句就變成:turtle.pensize(3)
這條語句其實(shí)沒有什么實(shí)際意義,就是可以讓下面的語句簡單一些而已。有點(diǎn)像我們平常所說的:深圳華為科技有限公司,以下簡稱:華為,一個(gè)道理。
第三句:p.pensize(3)
就是turtle.pensize(3)的縮寫形式,意思是畫筆的粗細(xì)為3個(gè)像素。pensize就是兩個(gè)單詞組合:pen(畫筆)+size(大小)。
畫圖部分
畫圖部分語句基本都是重復(fù)的,我們把重復(fù)的幾個(gè)語句拿出來分析一下就很了然了。
DB4F17A8-2D38-413A-9EC1-38EF93D6ABB6.png
第一句:p.pu()
其實(shí)只要知道pu是由兩個(gè)單詞:pen(畫筆)+up(拿起)組成就知道這句話的意思了:把畫筆抬起來,之后畫筆的移動(dòng)不會(huì)在紙面上留下痕跡。
p.goto(60,0)
goto的意思是去的意思,也就是說把畫筆拿到畫布的坐標(biāo)點(diǎn)(60,0)去。畫布的中心為(0,0),所以當(dāng)前的位置就是順著x軸移動(dòng)60像素。
因?yàn)樯蟼€(gè)語句把畫筆抬起來了,所以從當(dāng)前位置移動(dòng)到(60,0)不會(huì)再畫布上留下痕跡。
p.pd()
pd與pu對(duì)應(yīng),是pen(畫筆)+down(放下)的縮寫,也就是把畫筆落下了,之后畫筆移動(dòng)就會(huì)在畫布上留下痕跡。
p.color(“black”)
這句話太好理解了,就是把畫筆的顏色改成黑色,幾個(gè)圓圈的顏色不同,就是要在畫圓圈之前把畫筆的顏色變了。需要知道的是,顏色除了寫英文之外,還可以使用RGB(255.255.255)和小數(shù)標(biāo)識(shí)。不過,這個(gè)也不需要記憶,需要的時(shí)候查詢就好。
p.circle(30,360)
最最重要的畫圓終于出現(xiàn)了,circle就是畫個(gè)圓,直徑是30像素,畫360度,也就是一個(gè)整個(gè)圓。當(dāng)然也可以畫成180度半個(gè)圓弧,或者90度、30度甚至15度的圓弧。
輕輕易易地把一段程序解讀完成了,這個(gè)繪圖其實(shí)很簡單,就兩個(gè)步驟:
- 設(shè)置公共變量
- 繪圖
當(dāng)然,這個(gè)庫還有一些內(nèi)容,我們稍作補(bǔ)充:
其他參數(shù)
- turtle.setup設(shè)置繪圖窗口大小和位置。
- turtle.colormode 顏色模式RGB還是英文
- turtle.speed 畫筆速度
- turtle.fd向前走直線,fd=forward
- turtle.bk 向后走直線 bk=back
- turtle.left 向左轉(zhuǎn)
- turtle.right 向右轉(zhuǎn)
- turtle.seth 轉(zhuǎn)向角度
很簡單吧?
本質(zhì)上,庫的含義是,庫是已經(jīng)編寫好的程序模塊,然后給我們提供基本的功能,我們通過這些基本功能“咒語”來驅(qū)動(dòng)這些基本功能來實(shí)現(xiàn)我們的目的。
雖然這個(gè)庫的內(nèi)容也沒有很多,不過確實(shí)也沒有必要記憶或者學(xué)習(xí)什么,需要的時(shí)候只要搜一下這個(gè)庫提供哪些功能接口就好了。
總結(jié):python的強(qiáng)大不在于程序本身,而在于其有強(qiáng)大的生態(tài),也就是有無數(shù)的庫可以被我們使用,我們可以把他們當(dāng)成模組直接拿來使用。已經(jīng)集成到python中的庫被稱作標(biāo)準(zhǔn)庫,沒有集成進(jìn)去的叫做第三方庫,安裝一下就好。最后,附一個(gè)繪制小豬佩奇的小代碼,如果你有興趣也可以復(fù)制嘗試執(zhí)行一下,需要其他案例,可以私信索要。
import turtle
畫鼻子
def drawNose():
turtle.penup()
turtle.seth(90)
turtle.fd(100)
turtle.pendown()
turtle.begin_fill()
turtle.fillcolor('black')
turtle.seth(45)
turtle.fd(25)
turtle.seth(135)
turtle.circle(25, 95)
turtle.seth(315)
turtle.fd(25)
turtle.end_fill()
畫眼睛
def drawEyes(seth, fd, r):
turtle.penup()
turtle.seth(seth)
turtle.fd(fd)
turtle.pendown()
turtle.begin_fill()
turtle.fillcolor('black')
turtle.circle(50)
turtle.end_fill()
turtle.penup()
turtle.circle(50, r)
turtle.pendown()
turtle.begin_fill()
turtle.fillcolor('white')
turtle.circle(20)
turtle.end_fill()
畫臉
def drawFace(seth, fd):
turtle.penup()
turtle.seth(seth)
turtle.fd(fd)
turtle.pendown()
turtle.begin_fill()
turtle.fillcolor('red')
turtle.circle(70)
turtle.end_fill()
畫嘴巴
def drawLip():
turtle.penup()
turtle.seth(135)
turtle.fd(250)
turtle.pendown()
turtle.seth(-300)
turtle.circle(30, -65)
turtle.begin_fill()
turtle.fillcolor('Firebrick')
turtle.seth(165)
turtle.fd(140)
turtle.seth(195)
turtle.fd(140)
turtle.seth(-360)
turtle.circle(30, -65)
turtle.penup()
turtle.seth(-60)
turtle.circle(30, 65)
turtle.pendown()
turtle.seth(-70)
turtle.fd(240)
turtle.circle(55, 140)
turtle.seth(70)
turtle.fd(240)
turtle.end_fill()
turtle.seth(-110)
turtle.fd(80)
turtle.begin_fill()
turtle.fillcolor('Firebrick')
turtle.seth(120)
turtle.circle(120, 123)
turtle.seth(-70)
turtle.fd(165)
turtle.circle(55, 140)
turtle.seth(72)
turtle.fd(165)
turtle.end_fill()
主函數(shù)
def main():
turtle.pensize(4)
turtle.hideturtle()
turtle.setup(1000, 600)
turtle.speed(10)
turtle.screensize(bg='yellow')
drawNose()
drawEyes(160, 250, 60)
drawEyes(-9.5, 530, 230)
drawFace(195, 600)
drawFace(-11, 720)
drawLip()
turtle.done()
if name == 'main':
main()
總結(jié)
以上是生活随笔為你收集整理的python turtle 颜色数字_python的绘图利器--海龟绘图turtle的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: nfc标签 方案 防伪_NFC技术解读及
- 下一篇: python里compile的作用_Py