<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Python海龜繪圖,繪出最靚麗的景色

          共 5644字,需瀏覽 12分鐘

           ·

          2021-07-27 04:06

          前言

          大家平時(shí)用程序畫圖的時(shí)候是不是都覺得比較棘手了,今天給大家介紹個(gè)神奇的畫圖模塊-----turtle。它可以通過(guò)一些指令讓畫筆任意移動(dòng),可以說(shuō)是很智能了。


          導(dǎo)入模塊

          import turtle

          turtle基本用法

          一、設(shè)置畫布大小

          要想畫圖就要先有畫布,不然沒(méi)法讓圖顯示,我們可以先設(shè)置畫布大?。?/span>

          turtle.screensize(width,height,color) #設(shè)置寬度 高度 顏色

          二、設(shè)置畫布坐標(biāo)

          我們畫圖不光要設(shè)置畫布,還要對(duì)畫布的容器主界面進(jìn)行設(shè)置,不然主界面顯示不了,畫布自然也不會(huì)顯示。

          turtle.setup(width,height, startx,starty) #設(shè)置寬度 高度 開始x坐標(biāo) 開始y坐標(biāo)

          三、顯示主界面

          這個(gè)跟tkinter顯示主界面有點(diǎn)相似,也是使用mainloop()方法才可以顯示界面:

          import turtleturtle.Screen().title('繪圖工具') #設(shè)置繪圖窗口的標(biāo)題turtle.screensize(400,400, "red") #畫布大小背景顏色turtle.setup(width=600,height=600, startx=300, starty=50) #繪圖窗口的大小和起始坐標(biāo)turtle.mainloop() #顯示主界面
          t = turtle.Pen() #鋼筆t.shape("turtle") #海龜?shù)男螤睿篴rrow,turtle,circle,square,triangle,classict.resizemode() #大小調(diào)整模式:auto,user,noresizeturtle.bgcolor('black')#背景顏色

          四、設(shè)置繪圖畫筆

          因?yàn)楹}斃L圖是以畫筆來(lái)進(jìn)行繪畫的,所以我們得生成一個(gè)畫筆來(lái)進(jìn)行畫畫。我們需要對(duì)一個(gè)畫筆的大小和顏色來(lái)進(jìn)行設(shè)置:

          turtle.pencolor('green')  #設(shè)置畫筆的顏色為綠色,默認(rèn)黑色  color()turtle.pensize(1) #設(shè)置畫筆大小 turtle.width()turtle.speed() #設(shè)置畫筆速度 范圍是[0,10]#也可以使用turtle.Pen()

          這樣就生成了我們的第一個(gè)箭頭,海龜繪圖就是通過(guò)這個(gè)箭頭的移動(dòng)軌跡來(lái)達(dá)到繪圖目的的。


          五、基本繪圖命令

          接下來(lái)我們讓這個(gè)箭頭動(dòng)起來(lái),給他一點(diǎn)靈魂,免得它像稻草人一樣一動(dòng)不動(dòng),說(shuō)干就干。

          1.前進(jìn)

          turtle.forward(100) #向前進(jìn)100個(gè)像素turtle.fd(100)

          2.后退

          turtle.backward(200) #向后退200個(gè)像素,下方方法相同turtle.back(200)turtle.bk(200)

          3.移動(dòng)到

          turtle.goto(100,200) #直接移動(dòng)到坐標(biāo)為(100,200)的位置,下方效果一樣turtle.setpos(100,200)turtle.setposition(100,200)

          4.左移

          turtle.left(50)#向左移動(dòng)50個(gè)像素turtle.lt(50)

          5.右移

          turtle.right(60)#向右移動(dòng)60個(gè)像素turtle.rt(60)

          6.準(zhǔn)備移動(dòng)

          turtle.penup()turtle.Pen().up()

          7.暫停移動(dòng)

          turtle.pendown()turtle.Pen().down()

          8.畫圓

          turtle.circle(半徑, 弧度, 內(nèi)置多邊形數(shù))turtle.dot(int) #也可以畫圓

          9.移動(dòng)x軸

          turtle.setx(100) #x軸移動(dòng)100個(gè)像素

          10.移動(dòng)y軸

          turtle.sety(100) #y軸移動(dòng)100個(gè)像素

          11.設(shè)置當(dāng)前朝向的角度

          turtle.setheading(90)#當(dāng)前角度為90turtle.seth(90)standard模式下逆時(shí)針(北方) 它模式下順時(shí)針(東方)

          12.設(shè)置當(dāng)前畫筆位置為原點(diǎn)

          turtle.home()

          我們可以看到海龜最后停留的位置和畫筆最初的落腳點(diǎn)的位置,代碼如下:

          import turtleimport timet=turtle.Pen()t.shape('turtle')t.pencolor('green')turtle.bgcolor('gray')t.width=3time.sleep(1)t.penup()#準(zhǔn)備移動(dòng)t.forward(100)#向前進(jìn)100個(gè)像素time.sleep(1)t.backward(200) #向后退200個(gè)像素time.sleep(1)t.goto(100,200) #直接移動(dòng)到坐標(biāo)為(100,200)的位置time.sleep(1)t.left(50)#向左移動(dòng)50個(gè)像素time.sleep(1)t.right(60)#向右移動(dòng)60個(gè)像素time.sleep(1)t.penup()#準(zhǔn)備移動(dòng)t.setx(100)#x軸移動(dòng)100個(gè)像素time.sleep(1)t.sety(100) #y軸移動(dòng)100個(gè)像素turtle.seth(90)turtle.home()turtle.mainloop() #主界面一直保持,不退出

          我們也可以將海龜?shù)倪\(yùn)行軌跡顯示出來(lái):

          turtle.Screen().title('繪圖工具') #設(shè)置繪圖窗口的標(biāo)題turtle.screensize(400,400, "red") #畫布大小背景顏色turtle.setup(width=600,height=600, startx=300, starty=50) #繪圖窗口的大小和起始坐標(biāo)turtle.pensize(1)turtle.pencolor('green') #畫筆顏色turtle.speed(2)turtle.forward(100) #前進(jìn)100time.sleep(1)turtle.setposition(100,100)  #移動(dòng)到位置(100,100)time.sleep(1)turtle.bk(100) #后退100time.sleep(1)turtle.circle(100,100,5) #畫多邊形輪廓time.sleep(1)turtle.dot(50) #畫圓time.sleep(1)turtle.setx(100) #移動(dòng)x軸

          13.復(fù)制當(dāng)前圖形

          turtle.stamp()

          14.清除當(dāng)前圖形

          turtle.clearstamp()

          15.清除多個(gè)圖形

          turtle.clearstamps()

          16.撤銷操作

          turtle.undo()

          17.獲取當(dāng)前海龜坐標(biāo)

          turtle.position() turtle.pos()

          18.獲取海龜當(dāng)前坐標(biāo)與(x,y)的夾角

          tutrle.towards(x,y)

          19.獲取x坐標(biāo)

          tutrle.xcor()

          20.獲取y坐標(biāo)

          tutrle.ycor()

          21.獲取箭頭的朝向

          tutrle.heading()

          22.獲取箭頭坐標(biāo)和設(shè)置的坐標(biāo)的距離

          turtle.distance(x,y)

          23、清空當(dāng)前繪圖窗口,海龜狀態(tài)不變

          turtle.clear()turtle.clearscreen()

          24.清空窗口,重新設(shè)置海龜狀態(tài)

          turtle.reset()turtle.resetscreen()

          25.判斷當(dāng)前海龜是否可見

          turtle.isvisible()

          26.寫入文本

          turtle.write(text,font)

          27.繪制填充顏色

          turtle.fillcolor('red')

          28.判斷畫筆是否落下

          turtle.isdown (注意:沒(méi)有isup方法)

          29.隱藏海龜

          turtle.hideturtle()turtle.ht()

          30.顯示海龜

          turtle.showturtle()turtle.st()

          31.填充顏色

          turtle.fillcolor('black')

          32.開始填充

          turtle.begin_fill()

          33.結(jié)束填充

          turtle.end_fill()

          34.設(shè)置圓的度數(shù),默認(rèn)值為360度

          turtle.degrees(fullcircle=360.0)

          35.將圓的度數(shù)設(shè)置成2π

          turtle.radians()

          turtle.Screen().title('繪圖工具') #設(shè)置繪圖窗口的標(biāo)題t=turtle.screensize(400,400, "red") #畫布大小背景顏色turtle.setup(width=600,height=600, startx=300, starty=50) #繪圖窗口的大小和起始坐標(biāo)turtle.pensize(1)turtle.pencolor('green')turtle.speed(2)turtle.forward(100)turtle.circle(40)id=turtle.stamp()    #生成idturtle.goto(100,200) #移動(dòng)到(100,200)turtle.clearstamp(id) #刪除idturtle.undo() #撤銷操作print(turtle.pos()) #海龜當(dāng)前坐標(biāo)print(turtle.towards(100,100)) #當(dāng)前坐標(biāo)與設(shè)置的坐標(biāo)的夾角print(turtle.xcor(),turtle.ycor()) #獲取x,y坐標(biāo)print(turtle.heading())#獲取箭頭朝向print(turtle.distance(100,100))#當(dāng)前坐標(biāo)與設(shè)置的坐標(biāo)的距離turtle.clear()  #清空繪圖窗口turtle.reset() #重新設(shè)置海龜狀態(tài)turtle.forward(100)#向前進(jìn)100個(gè)像素if turtle.isvisible():  #判斷海龜是否可見,可見則后退300像素  turtle.back(300)turtle.write('任性的90后boy')turtle.fillcolor('blue') #海龜?shù)念伾畛錇樗{(lán)色turtle.begin_fill() #開始填充turtle.goto(100,-100)turtle.forward(150)turtle.end_fill() #結(jié)束填充turtle.fillcolor('black') #turtle.begin_fill() turtle.pencolor('yellow')turtle.circle(40)turtle.end_fill() turtle.mainloop()

          這一部分主要講海龜?shù)倪\(yùn)行軌跡的變化過(guò)程。

          36.海龜?shù)膯?dòng)和停止

          turtle.mainloop()turtle.done

          37.設(shè)置海龜?shù)哪J?/span>

          turtle.mode(mode) standard  逆時(shí)針   它  順時(shí)針  world

          38.設(shè)置或返回以毫秒為單位的繪圖延遲

          turtle.delay(delay=None)

          39.開始記錄多邊形的第一個(gè)頂點(diǎn)

          turtle.begin_poly()

          40.停止記錄多邊形的最后一個(gè)頂點(diǎn)

          turtle.end_poly()

          41.返回最后記錄的多邊形

          turtle.get_poly()

          turtle.Screen().title('繪圖工具') #設(shè)置繪圖窗口的標(biāo)題t=turtle.screensize(400,400, "red") #畫布大小背景顏色turtle.setup(width=600,height=600, startx=300, starty=50) #繪圖窗口的大小和起始坐標(biāo)turtle.pensize(1)turtle.pencolor('green')turtle.speed(2)turtle.begin_poly() #開始記錄for i in range(4):    turtle.forward(100)    turtle.right(90)turtle.end_poly() #結(jié)束記錄print(turtle.get_poly()) #獲取捕獲到的繪圖坐標(biāo)turtle.clear() #清除當(dāng)前繪圖turtle.mode('它')turtle.forward(100)turtle.ht() #隱藏turtle.left(100)turtle.delay(delay=100)#每100毫秒繪制一點(diǎn)turtle.goto(200,50)turtle.st() #顯示turtle.reset()#回到起點(diǎn)time.sleep(1)for x in range(100):  for y in range(200):    turtle.forward(100)    turtle.left(200)    turtle.goto(x,y) #不斷移動(dòng)位置    if turtle.pos()==(10,10): #如果當(dāng)前位置為(10,10)      turtle.done #銷毀窗口turtle.mainloop()

          這里顯示了最初繪圖的坐標(biāo),其實(shí)它繪制的是一個(gè)矩形。


          總結(jié)

          從這里看出,海龜畫圖的確是一個(gè)很不錯(cuò)的模塊,它能十分迅速并且很方便的幫助我們進(jìn)行繪圖,只需要短短幾個(gè)辨識(shí)度比較高的英文進(jìn)行組合便可以繪制精美的圖形。當(dāng)然它還有很多其它的用法,這里不在一一細(xì)說(shuō),大家可以慢慢琢磨。

          - EOF -

            推薦閱讀:


          點(diǎn)擊關(guān)注【python之禪】,提升Python技能
          ??????

          瀏覽 59
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲成人无码视频 | 亚洲国产91 | 黄片视频免费观看 | 亚洲精品在线视频 | 色婷婷精品国产一区二区三区 |