Python程序設(shè)計基礎(chǔ) 課件 第8章 turtle繪圖_第1頁
Python程序設(shè)計基礎(chǔ) 課件 第8章 turtle繪圖_第2頁
Python程序設(shè)計基礎(chǔ) 課件 第8章 turtle繪圖_第3頁
Python程序設(shè)計基礎(chǔ) 課件 第8章 turtle繪圖_第4頁
Python程序設(shè)計基礎(chǔ) 課件 第8章 turtle繪圖_第5頁
已閱讀5頁,還剩21頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第8章

turtle繪圖python程序設(shè)計基礎(chǔ)教程8.1畫布設(shè)置

海龜繪圖(TurtleGraphics),turtle庫是python的內(nèi)部庫。>>>importturtle>>>fromturtleimport*8.1畫布設(shè)置畫布是turtle模塊的繪圖區(qū)域(窗口),可以直接使用默認(rèn),也可以定義它的大小和初始位置。屏幕左上角為其坐標(biāo)系原點,橫軸為x、縱軸為y。畫布的單位是像素。turtle.screensize(width,height,bg)定義畫布的大小和背景顏色,其中width表示畫布的寬度,height表示畫布的高,bg表示畫布的顏色,若width和height為0-1之間小數(shù),則表示其占屏幕的比例若為空,則返回默認(rèn)大小。turtle.setup(width,height,startx,starty)定義畫布的大小以及距離屏幕左側(cè)和屏幕上邊的距離,其中width表示畫布的寬度,height表示畫布的高,startx表示畫布距離屏幕左側(cè)的距離,starty表示畫布距離屏幕上邊的距離,若為空,則畫布居中。8.1畫布設(shè)置在進(jìn)行圖形繪制之前需要了解下turtle的空間坐標(biāo)體系。1)絕對坐標(biāo)體系:以畫布中心為坐標(biāo)原點,向右為x軸,向上為y軸。與數(shù)學(xué)中的直角坐標(biāo)系相同。turtle.goto(x,y)表示直接跳轉(zhuǎn)到相應(yīng)的坐標(biāo)點(x,y),這里的坐標(biāo)是絕對坐標(biāo)。8.1畫布設(shè)置在進(jìn)行圖形繪制之前需要了解下turtle的空間坐標(biāo)體系。2)相對海龜坐標(biāo)體系:以海龜?shù)姆较騺砜矗星啊⒑?、前進(jìn)方向左側(cè)、前進(jìn)方向右側(cè)四個方向。8.1畫布設(shè)置turtle.fd(distance)/turtle.forward(distance)從海龜?shù)姆较蛳蚯扒斑M(jìn)distance像素的距離。turtle.bk(distance)/turtle.backward(distance)從海龜?shù)姆较蛳蚝笄斑M(jìn)distance像素的距離。turtle.circle(r,extent)表示以r為半徑,旋轉(zhuǎn)extent角度。當(dāng)r>0時,圓心在畫筆的左邊,當(dāng)r<0,圓心在畫筆的右邊。extent為正數(shù),則沿著海龜方向畫圓,extent為負(fù)數(shù),則逆著海龜方向畫圓。8.1畫布設(shè)置circle(r,extent)的應(yīng)用fromturtleimport*setup(500,500,0,0)#設(shè)置畫布大小和起始點circle(100,90)circle(-100,90)fromturtleimport*setup(500,500,0,0)#設(shè)置畫布大小和起始點circle(100,-90)circle(-100,-90)8.1畫布設(shè)置角度坐標(biāo)體系:(1)絕對角度坐標(biāo):x軸為0度,逆時針為角度正值,順時針為角度負(fù)值。

(2)相對角度坐標(biāo):以海龜為參考系改變方向。8.1畫布設(shè)置RGB色彩模式turtle.colormode(mode)參數(shù)mode=1,則為小數(shù),mode=255,則為整數(shù).turtle.pencolor(‘color’)參數(shù)color可以為顏色字符串如red,blue

。color也可以取RGB值。ColorRGB整數(shù)RGB小數(shù)White255,255,2551,1,1Yellow255,255,01,1,0Magenta255,0,2551,0,1Cyan0,255,2550,1,1Blue0,0,2550,0,1Black0,0,00,0,0Purple160,32,2400.63,0.13,0.948.2畫筆設(shè)置畫筆描述了繪制圖形時的位置、方向、粗細(xì)、移動速度等信息。初始位置位于畫布正中央,正方向默認(rèn)為沿著x軸數(shù)值增大方向。操縱畫筆繪圖的命令可以劃分為3種基本類型:畫筆設(shè)置命令,畫筆控制命令,畫筆運(yùn)動命令。方法含義turtle.pensize(width)設(shè)置畫筆的寬度,width是像素值。turtle.pencolor(color)設(shè)置畫筆顏色,color取值可以是字符串,可以是RGB整數(shù),RGB小數(shù),默認(rèn)返回當(dāng)前畫筆顏色。turtle.penup()提起畫筆,不繪制圖形,之后移動畫筆不再繪圖。turtle.pendown()落下畫筆,進(jìn)行繪圖。turtle.speed(speed)設(shè)置畫筆移動速度,速度范圍[0,10],數(shù)字越大越快。turtle.hideturtle()隱藏畫筆的turtle形狀turtle.showturtle()顯示畫筆的turtle形狀8.2畫筆設(shè)置turtle繪圖importturtleturtle.pensize(4)#設(shè)置畫筆寬度為4像素turtle.pencolor("green")#設(shè)置畫筆顏色為綠色turtle.penup()#抬起畫筆,不作畫turtle.pendown()#落下畫筆,進(jìn)行作畫turtle.speed(1)#設(shè)置畫筆速度R=50turtle.circle(R)#繪制半徑是R的圓turtle.showturtle()#顯示畫筆形狀8.2畫筆設(shè)置常用畫筆運(yùn)動命令有turtle.goto(x,y),turtle.forward(distance),turtle.backward(distance)等,具體含義如表8-3所示。方法含義turtle.goto(x,y)海龜位置跳轉(zhuǎn)至指定坐標(biāo)(x,y)處。turtle.forward(distance)沿海龜方向前進(jìn)distance距離。turtle.backward(distance)沿海龜后退方向前景distance距離。turtle.circle(r,extent)以r為半徑繪制圓。turtle.right(angle)順時針旋轉(zhuǎn)angle角度。turtle.left(angle)逆時針旋轉(zhuǎn)angle角度。turtle.setheading(angle)設(shè)置行進(jìn)方向為angle角度,角度為絕對角度。turtle.dot(r)繪制指定顏色和直徑的圓點turtle.setx()將當(dāng)前x軸移動至指定位置turtle.sety()將當(dāng)前y軸移動至指定位置turtle.home()設(shè)置畫筆當(dāng)前位置為原點,朝向東8.2畫筆設(shè)置turtle繪圖importturtle#導(dǎo)入turtle庫turtle.pensize(4)#設(shè)置畫筆寬度turtle.pencolor("green")#設(shè)置畫筆顏色turtle.fillcolor("blue")#設(shè)置填充顏色R=50turtle.fd(R)#前進(jìn)R像素turtle.bk(R)#后退R像素turtle.circle(R)#繪制半徑是R的圓turtle.right(180)#順時針旋轉(zhuǎn)90°turtle.circle(R)#繪制半徑是R的圓turtle.home()#設(shè)置畫筆回到原點,方向朝東8.2畫筆設(shè)置常用畫筆控制命令有turtle.begin_fill(),turtle.end_fill()等方法含義turtle.fillcolor(colorstring)設(shè)置圖形的填充顏色。turtle.color(color1,color2)設(shè)置pencolor=color1,fillcolor=color2。turtle.filling()返回當(dāng)前是否在填充狀態(tài)。turtle.begin_fill()準(zhǔn)備開始填充圖形。turtle.end_fill()填充結(jié)束。8.2畫筆設(shè)置turtle繪圖importturtle#導(dǎo)入turtle庫turtle.pensize(4)#設(shè)置畫筆寬度turtle.pencolor("green")#設(shè)置畫筆顏色turtle.fillcolor("blue")#設(shè)置填充顏色R=50turtle.fd(R)#前進(jìn)R像素turtle.bk(R)#后退R像素turtle.begin_fill()#準(zhǔn)備開始填充圖形turtle.circle(R)#繪制半徑是R的圓turtle.right(180)#順時針旋轉(zhuǎn)90°turtle.circle(R)#繪制半徑是R的圓turtle.end_fill()#完成填充圖形turtle.home()#設(shè)置畫筆回到原點,方向朝東8.2畫筆設(shè)置常用畫筆控制命令有turtle.begin_fill(),turtle.end_fill()等方法含義turtle.fillcolor(colorstring)設(shè)置圖形的填充顏色。turtle.color(color1,color2)設(shè)置pencolor=color1,fillcolor=color2。turtle.filling()返回當(dāng)前是否在填充狀態(tài)。turtle.begin_fill()準(zhǔn)備開始填充圖形。turtle.end_fill()填充結(jié)束。8.2畫筆設(shè)置turtle繪圖importturtle#導(dǎo)入turtle庫turtle.pensize(4)#設(shè)置畫筆寬度turtle.pencolor("green")#設(shè)置畫筆顏色turtle.fillcolor("blue")#設(shè)置填充顏色R=50turtle.fd(R)#前進(jìn)R像素turtle.bk(R)#后退R像素turtle.begin_fill()#準(zhǔn)備開始填充圖形turtle.circle(R)#繪制半徑是R的圓turtle.right(180)#順時針旋轉(zhuǎn)90°turtle.circle(R)#繪制半徑是R的圓turtle.end_fill()#完成填充圖形turtle.home()#設(shè)置畫筆回到原點,方向朝東8.3圖形繪制圖形繪制方法如下。方法含義turtle.clear()清空turtle窗口,但是turtle的位置和狀態(tài)不會改變。turtle.reset()重置turtle窗口為起始狀態(tài)。turtle.undo()撤銷上一個動作。turtle.isvisible()返回turtle是否可見。turtle.stamp()復(fù)制當(dāng)前圖形。turtle.write(s[,font=("font-name",font_size,"font_type")])寫文本,s為文本內(nèi)容,font是字體的參數(shù),分別為字體名稱,大小和類型。turtle.mode(mode=None)設(shè)置海龜模式并執(zhí)行重置。turtle.delay(delay=None)設(shè)置或返回以毫秒為單位的繪圖延遲。turtle.begin_poly()開始記錄多邊形的頂點。turtle.end_poly()停止記錄多邊形的頂點,并與第一個頂點相連。turtle.get_poly()返回記錄的多邊形。8.4綜合案例例8-1:繪制五角星。編程思路:從起點開始,默認(rèn)方向是正東0°,第一次使畫筆移動200像素,以畫筆當(dāng)前的角度右轉(zhuǎn)144°,并沿此方向使畫筆進(jìn)行第二輪的移動,以此類推,循環(huán)4次畫筆回到原點。importturtle#導(dǎo)入turtle庫turtle.pensize(4)#設(shè)置畫筆寬度turtle.pencolor("green")#設(shè)置畫筆顏色turtle.fillcolor("blue")#設(shè)置填充顏色turtle.begin_fill()#開始填充foriinrange(5):turtle.forward(200)turtle.right(144)#向右偏轉(zhuǎn)144°turtle.end_fill()turtle.penup()#抬起畫筆turtle.goto(50,-150)#定位至指定位置turtle.color("blue")turtle.write("五角星",font=('Arial',20,'normal'))回到原點,方向朝東8.4綜合案例例8-2:繪制四葉草。編程思路:從起點開始,默認(rèn)方向是正東0°,以畫筆當(dāng)前角度左轉(zhuǎn)(逆時針)旋轉(zhuǎn)135°,第一次使畫筆移動50像素,在畫筆方向的右側(cè)畫一個半徑為25的半圓,以畫筆當(dāng)前的角度左轉(zhuǎn)90°,在畫筆方向的右側(cè)畫一個半徑是25的半圓,沿著畫筆當(dāng)前的方向前進(jìn)50像素,并沿此方向使畫筆進(jìn)行第二輪的移動,以此類推,循環(huán)4次畫筆回到原點。importturtle#導(dǎo)入turtle庫turtle.pensize(4)#設(shè)置畫筆像素為4像素turtle.pencolor("black")#設(shè)置畫筆顏色為黑色turtle.fillcolor("green")#設(shè)置填充顏色為綠色turtle.left(135)i=1while(i<=4):turtle.begin_fill()#開始填充turtle.forward(50)turtle.circle(-25,180)turtle.left(90)turtle.circle(-25,180)turtle.forward(50)turtle.end_fill()#結(jié)束填充i+=18.4綜合案例例8-3:繪制旋轉(zhuǎn)風(fēng)車。編程思路:從起點開始,首先繪制一個風(fēng)車的棒子,之后通過for循環(huán)繪制四個風(fēng)車葉子,每個風(fēng)車葉子由兩個三角形構(gòu)成。最后風(fēng)車的旋轉(zhuǎn)通過循環(huán)繪制不同角度的風(fēng)車完成,風(fēng)車旋轉(zhuǎn)100圈結(jié)束循環(huán)。importturtleastimporttimedefdraw(r):#畫一個風(fēng)車的棒子t.pensize(5)t.penup()t.goto(0,0)t.pendown()t.goto(0,-150)t.pensize(1)#循環(huán)生成四個葉子foriinrange(4):t.setheading(i*90+r)t.penup()t.goto(0,0)t.pendown()#繪制深藍(lán)色三角形t.fillcolor('deepskyblue')t.begin_fill()

t.forward(100)t.left(150)t.forward(70)t.end_fill()

#繪制綠色三角形t.fillcolor('green')t.begin_fill()t.left(30)t.forward(40)t.left(90)t.forward(35)t.end_fill()forrinrange(0,360*100,3):#這里是旋轉(zhuǎn)100圈,步長3對應(yīng)轉(zhuǎn)速。t.tracer(False)#跳過繪圖過程直接生成圖形t.clear()draw(r)time.sleep(0.01)t.hideturtle()t.tracer(True)8.4綜合案例例8-4.繪制圓環(huán)。編程思路:定義一個函數(shù),用于繪制大圓和小圓。調(diào)用該函數(shù),傳入大圓和小圓的半徑,繪制圓環(huán)。importturtle#設(shè)置畫筆速度和顏色turtle.speed(0)turtle.color("blue")#定義一個函數(shù),用于繪制大圓和小圓defdraw_circles(big_radius,small_radius):turtle.penup()turtle.goto(0,-big_radius)turtle.pendown()turtle.circle(big_radius)turtle.penup()turtle.goto(0,-small_radius)turtle.pendown()turtle.circle(small_radius)#調(diào)用該函數(shù),傳入大圓和小圓的半徑draw_circles(100,50)#結(jié)束繪制turtle.done()8.4綜合案例例8-5.繪制圖形實現(xiàn)圓形和矩形相切。編程思路:繪制半徑是10的圓,然后沿著圓的方向繪制長為40,寬為20的矩形。fromturtleimport*color('red')R=10pensize(4)circle(R)#繪制圓foriinrange(2):forward(20)right(90)fd(40)right(90)fd(20)right(90)fd(20)penup()#抬起畫筆goto(-50,-100)#定位至指定位置color("blue")write('圓形矩形相切',font=(10))8.4綜合案例例8-6.用turtle繪制一個圓形螺旋,畫筆寬4像素,畫筆顏色紅色,下方用10號字寫“圓形螺旋”。編程思路:設(shè)置畫筆顏色紅色,畫筆寬度4像素,第一次繪制半圓的半徑為10,將半徑增加10,第二次繪制半圓的半徑為20,并將半徑增加10,以此類推,循環(huán)10次結(jié)束繪制,并在下方寫上“圓形螺旋”。fromturtleimport*co

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論