1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

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

        共 5887字,需瀏覽 12分鐘

         ·

        2021-07-20 09:37

        點(diǎn)擊上方“Python爬蟲與數(shù)據(jù)挖掘”,進(jìn)行關(guān)注

        回復(fù)“書籍”即可獲贈(zèng)Python從入門到進(jìn)階共10本電子書

        歷覽前賢國與家,成由勤儉破由奢。

        Hello,大家好。我是Python進(jìn)階者。

        前言

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


        導(dǎo)入模塊

        import turtle

        turtle基本用法

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

        要想畫圖就要先有畫布,不然沒法讓圖顯示,我們可以先設(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圖是以畫筆來進(jìn)行繪畫的,所以我們得生成一個(gè)畫筆來進(jìn)行畫畫。我們需要對(duì)一個(gè)畫筆的大小和顏色來進(jìn)行設(shè)置:

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

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


        五、基本繪圖命令

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

        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)行軌跡顯示出來:

        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 (注意:沒有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)行軌跡的變化過程。

        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ì)說,大家可以慢慢琢磨。

        ------------------- End -------------------

        往期精彩文章推薦:

        歡迎大家點(diǎn)贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持

        想加入Python學(xué)習(xí)群請(qǐng)?jiān)诤笈_(tái)回復(fù)【入群

        萬水千山總是情,點(diǎn)個(gè)【在看】行不行

        /今日留言主題/

        隨便說一兩句吧~~

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

        手機(jī)掃一掃分享

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

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            免费的三及片 | 国产和美国黄色毛片 | 国产黄a三级三级三级看三级戴璐 | 亚洲天堂手机在线观看 | 天天操天天日天天干天天干天天干 | www.豆花视频.com | 超碰在线夫妻 | 4438成人免费视频 | 欧美超级操逼视频免费观看 | 色猫AV |