會(huì)畫畫的海龜,Python Turtle庫(kù)詳解(27)
小朋友們好,大朋友們好!
我是貓妹,一名愛上Python編程的小學(xué)生。
歡迎和貓妹一起,趣味學(xué)Python。
今日主題
介紹下Python的turtle庫(kù),這是一個(gè)可以畫畫的庫(kù),非常適合小孩子在屏幕上畫畫。
先學(xué)習(xí)基礎(chǔ)知識(shí),后面分享幾個(gè)有趣的程序。
LOGO語言
LOGO語言“l(fā)ogo”一詞源于希臘文,原意為“文字”或“思考”、“想法”。是一種過程性語言,是在1967年由美國(guó)麻省理工學(xué)院(MIT)佩帕特(Seymour Papert)教授指導(dǎo)下的一個(gè)研究小組在LISP語言基礎(chǔ)上,專門為兒童研制開發(fā)的編程語言。
Logo語言雖然結(jié)構(gòu)簡(jiǎn)單、卻有豐富的表達(dá)方式,體現(xiàn)了現(xiàn)代計(jì)算機(jī)科學(xué)許多最新概念。在LOGO的世界里,人們可以通過編程輸入指令,讓小海龜在畫面上走動(dòng),向左右上下,或者按照設(shè)定的角度移動(dòng),或者重復(fù)做某一件事情。
簡(jiǎn)單的繪圖指令,加上判斷、循環(huán)等程序設(shè)計(jì)方法,可以繪制出美麗的圖案,比如人物、動(dòng)物、植物、抽象畫等等。
turtle庫(kù)
Python內(nèi)置了turtle庫(kù),借鑒了LOGO語言海龜畫圖的所有繪圖功能。
畫布(canvas)
所謂畫布,就是將這些東西都存放在一個(gè)位置進(jìn)行設(shè)定,方便展開繪畫的區(qū)域。常見的方式有兩種:
turtle.screensize(canvwidth=None, canvheight=None, bg=None)
三個(gè)參數(shù),分別是設(shè)置畫布的寬、高及背景樣式的操作,在使用的時(shí)候,寬的單位為像素。
比如:
turtle.screensize(600, 400, "green")
turtle.screensize() #返回默認(rèn)大小(400, 300)
turtle.setup(width=0.5, height=0.75, startx=None, starty=None)
前面兩個(gè)參數(shù)是設(shè)置畫布的寬和高的,當(dāng)它們?yōu)檎麛?shù)的時(shí)候表示的是像素,如果是小數(shù)就表示當(dāng)前使用電腦的屏幕比例。后面兩個(gè)參數(shù)設(shè)置的是矩形窗口頂點(diǎn)的位置,當(dāng)值為空時(shí),默認(rèn)窗口會(huì)在屏幕的中間出現(xiàn)。
比如:
turtle.setup(width=0.6, height=0.6)
turtle.setup(width=800, height=800, startx=100, starty=100)
繪圖屏幕坐標(biāo)系
畫筆
turtle.shape("turtle")可指定畫筆的形狀,常見選項(xiàng)有:classic,arrow,tutle(缺省默認(rèn)值),circle,square,triangle。
turtle.pensize():設(shè)置畫筆的寬度。
turtle.speed():畫筆的移動(dòng)速度,范圍為0到無窮大。
turtle.pencolor():設(shè)置獲取畫筆顏色。
繪圖控制
向前移動(dòng):tutle.forward(distance),tutle.fd(distance)
向后移動(dòng):tutle.backward(distance),tutle.bk(distance)
向左旋轉(zhuǎn):tutle.left(angle),tutle.lt(angle)
向右旋轉(zhuǎn):tutle.right(angle),tutle.rt(angle)
向左旋轉(zhuǎn)角度:tutle.seth(angle)
畫筆運(yùn)動(dòng)命令
tutle.forward(distance),tutle.fd(distance)
tutle.backward(distance),tutle.bk(distance)
tutle.left(angle),tutle.lt(angle)
tutle.right(angle),tutle.rt(angle)
tutle.pendown(),pd(),down():畫筆落下,移動(dòng)時(shí)繪制圖形,缺省值
tutle.goto(x,y):畫筆移動(dòng)到(x,y)
tutle.penup(),pu(),up():畫筆抬起,移動(dòng)時(shí)不繪制圖形
tutle.setx():將當(dāng)前x軸移動(dòng)到指定位
tutle.sety():將當(dāng)前y軸移動(dòng)到指定位置
tutle.setheading(angle),tutle.seth():設(shè)置當(dāng)前朝向?yàn)閍ngle的角度
tutle.home():設(shè)置畫筆位置到原點(diǎn),朝向東
畫筆設(shè)置命令
tutle.pensize(width):畫筆寬度
tutle.pencolor(colorstring):畫筆顏色
tutle.colormode(mode):改變顏色生成模式
tutle.fillcolor(colorstring):繪制圖形填充顏色
tutle.color(color1,color2):同時(shí)設(shè)置pencolor=color1,fillcolor=color2
tutle.filling():返回當(dāng)前是否在填充裝填
tutle.begin_fill():準(zhǔn)備開始填充圖形
tutle.end_fill():填充完成
tutle.hideturle():隱藏畫筆形狀
tutle.showturle():顯示畫筆形狀
畫筆控制命令
tutle.clear():清空turle窗口,但turtle位置和狀態(tài)不改變
tutle.reset():清空窗口,重置turtle狀態(tài)為起始狀態(tài)
tutle.undo():撤銷上一個(gè)turtle動(dòng)作
tutle.isvisable():返回當(dāng)前turtle是否可見
tutle.stamp():復(fù)制當(dāng)前圖形
tutle.write(s,font):寫文本s,字體是font
tutle.dot(r,color):繪制一個(gè)指定直徑和顏色的原點(diǎn)
tutle.circle(radius,extents,steps):以給定半徑畫圓,半徑radius為正(負(fù)),表示圓心在畫筆的左邊(右邊)畫圓
其他高級(jí)命令
tutle.done():程序暫停,直到用戶關(guān)閉。一般是最后一個(gè)語句
tutle.mode(mode=None):設(shè)置standard,logo,world
tutle.delay(delay=None):設(shè)置或返回以毫秒為單位的繪圖延遲
tutle.begin_poly():開始記錄多邊形的頂點(diǎn)
tutle.end_poly():停止記錄多邊形的頂點(diǎn)
tutle.get_poly():返回最后記錄的多邊形
模式‘standard’與turtle.py兼容。
模式‘logo’與大多數(shù)Logo-Turtle-Graphics兼容。
模式‘world’使用用戶定義的‘worldcoordinates’。
好了,我們今天就學(xué)到這里吧!
如果遇到什么問題,咱們多多交流,共同解決。
我是貓妹,咱們下次見!
我是貓妹,一名愛上Python編程的小學(xué)生。
歡迎和貓妹一起,趣味學(xué)Python。
今日主題
介紹下Python的turtle庫(kù),這是一個(gè)可以畫畫的庫(kù),非常適合小孩子在屏幕上畫畫。
先學(xué)習(xí)基礎(chǔ)知識(shí),后面分享幾個(gè)有趣的程序。
LOGO語言
LOGO語言“l(fā)ogo”一詞源于希臘文,原意為“文字”或“思考”、“想法”。是一種過程性語言,是在1967年由美國(guó)麻省理工學(xué)院(MIT)佩帕特(Seymour Papert)教授指導(dǎo)下的一個(gè)研究小組在LISP語言基礎(chǔ)上,專門為兒童研制開發(fā)的編程語言。
Logo語言雖然結(jié)構(gòu)簡(jiǎn)單、卻有豐富的表達(dá)方式,體現(xiàn)了現(xiàn)代計(jì)算機(jī)科學(xué)許多最新概念。在LOGO的世界里,人們可以通過編程輸入指令,讓小海龜在畫面上走動(dòng),向左右上下,或者按照設(shè)定的角度移動(dòng),或者重復(fù)做某一件事情。
簡(jiǎn)單的繪圖指令,加上判斷、循環(huán)等程序設(shè)計(jì)方法,可以繪制出美麗的圖案,比如人物、動(dòng)物、植物、抽象畫等等。
turtle庫(kù)
Python內(nèi)置了turtle庫(kù),借鑒了LOGO語言海龜畫圖的所有繪圖功能。
畫布(canvas)
所謂畫布,就是將這些東西都存放在一個(gè)位置進(jìn)行設(shè)定,方便展開繪畫的區(qū)域。常見的方式有兩種:
turtle.screensize(canvwidth=None, canvheight=None, bg=None)
三個(gè)參數(shù),分別是設(shè)置畫布的寬、高及背景樣式的操作,在使用的時(shí)候,寬的單位為像素。
比如:
turtle.screensize(600, 400, "green")
turtle.screensize() #返回默認(rèn)大小(400, 300)
turtle.setup(width=0.5, height=0.75, startx=None, starty=None)
前面兩個(gè)參數(shù)是設(shè)置畫布的寬和高的,當(dāng)它們?yōu)檎麛?shù)的時(shí)候表示的是像素,如果是小數(shù)就表示當(dāng)前使用電腦的屏幕比例。后面兩個(gè)參數(shù)設(shè)置的是矩形窗口頂點(diǎn)的位置,當(dāng)值為空時(shí),默認(rèn)窗口會(huì)在屏幕的中間出現(xiàn)。
比如:
turtle.setup(width=0.6, height=0.6)
turtle.setup(width=800, height=800, startx=100, starty=100)
繪圖屏幕坐標(biāo)系
畫筆
turtle.shape("turtle")可指定畫筆的形狀,常見選項(xiàng)有:classic,arrow,tutle(缺省默認(rèn)值),circle,square,triangle。
turtle.pensize():設(shè)置畫筆的寬度。
turtle.speed():畫筆的移動(dòng)速度,范圍為0到無窮大。
turtle.pencolor():設(shè)置獲取畫筆顏色。
繪圖控制
向前移動(dòng):tutle.forward(distance),tutle.fd(distance)
向后移動(dòng):tutle.backward(distance),tutle.bk(distance)
向左旋轉(zhuǎn):tutle.left(angle),tutle.lt(angle)
向右旋轉(zhuǎn):tutle.right(angle),tutle.rt(angle)
向左旋轉(zhuǎn)角度:tutle.seth(angle)
畫筆運(yùn)動(dòng)命令
tutle.forward(distance),tutle.fd(distance)
tutle.backward(distance),tutle.bk(distance)
tutle.left(angle),tutle.lt(angle)
tutle.right(angle),tutle.rt(angle)
tutle.pendown(),pd(),down():畫筆落下,移動(dòng)時(shí)繪制圖形,缺省值
tutle.goto(x,y):畫筆移動(dòng)到(x,y)
tutle.penup(),pu(),up():畫筆抬起,移動(dòng)時(shí)不繪制圖形
tutle.setx():將當(dāng)前x軸移動(dòng)到指定位
tutle.sety():將當(dāng)前y軸移動(dòng)到指定位置
tutle.setheading(angle),tutle.seth():設(shè)置當(dāng)前朝向?yàn)閍ngle的角度
tutle.home():設(shè)置畫筆位置到原點(diǎn),朝向東
畫筆設(shè)置命令
tutle.pensize(width):畫筆寬度
tutle.pencolor(colorstring):畫筆顏色
tutle.colormode(mode):改變顏色生成模式
tutle.fillcolor(colorstring):繪制圖形填充顏色
tutle.color(color1,color2):同時(shí)設(shè)置pencolor=color1,fillcolor=color2
tutle.filling():返回當(dāng)前是否在填充裝填
tutle.begin_fill():準(zhǔn)備開始填充圖形
tutle.end_fill():填充完成
tutle.hideturle():隱藏畫筆形狀
tutle.showturle():顯示畫筆形狀
畫筆控制命令
tutle.clear():清空turle窗口,但turtle位置和狀態(tài)不改變
tutle.reset():清空窗口,重置turtle狀態(tài)為起始狀態(tài)
tutle.undo():撤銷上一個(gè)turtle動(dòng)作
tutle.isvisable():返回當(dāng)前turtle是否可見
tutle.stamp():復(fù)制當(dāng)前圖形
tutle.write(s,font):寫文本s,字體是font
tutle.dot(r,color):繪制一個(gè)指定直徑和顏色的原點(diǎn)
tutle.circle(radius,extents,steps):以給定半徑畫圓,半徑radius為正(負(fù)),表示圓心在畫筆的左邊(右邊)畫圓
其他高級(jí)命令
tutle.done():程序暫停,直到用戶關(guān)閉。一般是最后一個(gè)語句
tutle.mode(mode=None):設(shè)置standard,logo,world
tutle.delay(delay=None):設(shè)置或返回以毫秒為單位的繪圖延遲
tutle.begin_poly():開始記錄多邊形的頂點(diǎn)
tutle.end_poly():停止記錄多邊形的頂點(diǎn)
tutle.get_poly():返回最后記錄的多邊形
模式‘standard’與turtle.py兼容。
模式‘logo’與大多數(shù)Logo-Turtle-Graphics兼容。
模式‘world’使用用戶定義的‘worldcoordinates’。
好了,我們今天就學(xué)到這里吧!
如果遇到什么問題,咱們多多交流,共同解決。
我是貓妹,咱們下次見!