Python海龜繪圖,繪出最靚麗的景色
大家平時用程序畫圖的時候是不是都覺得比較棘手了,今天給大家介紹個神奇的畫圖模塊-----turtle。它可以通過一些指令讓畫筆任意移動,可以說是很智能了。
導入模塊
import turtleturtle基本用法
一、設置畫布大小
要想畫圖就要先有畫布,不然沒法讓圖顯示,我們可以先設置畫布大?。?/span>
turtle.screensize(width,height,color) #設置寬度 高度 顏色二、設置畫布坐標
我們畫圖不光要設置畫布,還要對畫布的容器主界面進行設置,不然主界面顯示不了,畫布自然也不會顯示。
turtle.setup(width,height, startx,starty) #設置寬度 高度 開始x坐標 開始y坐標三、顯示主界面
這個跟tkinter顯示主界面有點相似,也是使用mainloop()方法才可以顯示界面:
import turtleturtle.Screen().title('繪圖工具') #設置繪圖窗口的標題turtle.screensize(400,400, "red") #畫布大小背景顏色turtle.setup(width=600,height=600, startx=300, starty=50) #繪圖窗口的大小和起始坐標turtle.mainloop() #顯示主界面t = turtle.Pen() #鋼筆t.shape("turtle") #海龜?shù)男螤睿篴rrow,turtle,circle,square,triangle,classict.resizemode() #大小調整模式:auto,user,noresizeturtle.bgcolor('black')#背景顏色

四、設置繪圖畫筆
因為海龜繪圖是以畫筆來進行繪畫的,所以我們得生成一個畫筆來進行畫畫。我們需要對一個畫筆的大小和顏色來進行設置:
turtle.pencolor('green') #設置畫筆的顏色為綠色,默認黑色 color()turtle.pensize(1) #設置畫筆大小 turtle.width()turtle.speed() #設置畫筆速度 范圍是[0,10]#也可以使用turtle.Pen()

這樣就生成了我們的第一個箭頭,海龜繪圖就是通過這個箭頭的移動軌跡來達到繪圖目的的。
五、基本繪圖命令
接下來我們讓這個箭頭動起來,給他一點靈魂,免得它像稻草人一樣一動不動,說干就干。
1.前進
turtle.forward(100) #向前進100個像素turtle.fd(100)
2.后退
turtle.backward(200) #向后退200個像素,下方方法相同turtle.back(200)turtle.bk(200)
3.移動到
turtle.goto(100,200) #直接移動到坐標為(100,200)的位置,下方效果一樣turtle.setpos(100,200)turtle.setposition(100,200)
4.左移
turtle.left(50)#向左移動50個像素turtle.lt(50)
5.右移
turtle.right(60)#向右移動60個像素turtle.rt(60)
6.準備移動
turtle.penup()turtle.Pen().up()
7.暫停移動
turtle.pendown()turtle.Pen().down()
8.畫圓
turtle.circle(半徑, 弧度, 內置多邊形數(shù))turtle.dot(int)
9.移動x軸
turtle.setx(100) #x軸移動100個像素10.移動y軸
turtle.sety(100) #y軸移動100個像素11.設置當前朝向的角度
turtle.setheading(90)#當前角度為90turtle.seth(90)在standard模式下逆時針(北方) 它模式下順時針(東方)
12.設置當前畫筆位置為原點
turtle.home()
我們可以看到海龜最后停留的位置和畫筆最初的落腳點的位置,代碼如下:
import turtleimport timet=turtle.Pen()t.shape('turtle')t.pencolor('green')turtle.bgcolor('gray')t.width=3time.sleep(1)t.penup()#準備移動t.forward(100)#向前進100個像素time.sleep(1)t.backward(200) #向后退200個像素time.sleep(1)t.goto(100,200) #直接移動到坐標為(100,200)的位置time.sleep(1)t.left(50)#向左移動50個像素time.sleep(1)t.right(60)#向右移動60個像素time.sleep(1)t.penup()#準備移動t.setx(100)#x軸移動100個像素time.sleep(1)t.sety(100) #y軸移動100個像素turtle.seth(90)turtle.home()turtle.mainloop() #主界面一直保持,不退出
我們也可以將海龜?shù)倪\行軌跡顯示出來:

turtle.Screen().title('繪圖工具') #設置繪圖窗口的標題turtle.screensize(400,400, "red") #畫布大小背景顏色turtle.setup(width=600,height=600, startx=300, starty=50) #繪圖窗口的大小和起始坐標turtle.pensize(1)turtle.pencolor('green') #畫筆顏色turtle.speed(2)turtle.forward(100) #前進100time.sleep(1)turtle.setposition(100,100) #移動到位置(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) #移動x軸
13.復制當前圖形
turtle.stamp()14.清除當前圖形
turtle.clearstamp()15.清除多個圖形
turtle.clearstamps()16.撤銷操作
turtle.undo()17.獲取當前海龜坐標
turtle.position()turtle.pos()
18.獲取海龜當前坐標與(x,y)的夾角
tutrle.towards(x,y)19.獲取x坐標
tutrle.xcor()20.獲取y坐標
tutrle.ycor()21.獲取箭頭的朝向
tutrle.heading()22.獲取箭頭坐標和設置的坐標的距離
turtle.distance(x,y)23、清空當前繪圖窗口,海龜狀態(tài)不變
turtle.clear()turtle.clearscreen()
24.清空窗口,重新設置海龜狀態(tài)
turtle.reset()turtle.resetscreen()
25.判斷當前海龜是否可見
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.結束填充
turtle.end_fill()34.設置圓的度數(shù),默認值為360度
turtle.degrees(fullcircle=360.0)35.將圓的度數(shù)設置成2π
turtle.radians()
turtle.Screen().title('繪圖工具') #設置繪圖窗口的標題t=turtle.screensize(400,400, "red") #畫布大小背景顏色turtle.setup(width=600,height=600, startx=300, starty=50) #繪圖窗口的大小和起始坐標turtle.pensize(1)turtle.pencolor('green')turtle.speed(2)turtle.forward(100)turtle.circle(40)id=turtle.stamp() #生成idturtle.goto(100,200) #移動到(100,200)turtle.clearstamp(id) #刪除idturtle.undo() #撤銷操作print(turtle.pos()) #海龜當前坐標print(turtle.towards(100,100)) #當前坐標與設置的坐標的夾角print(turtle.xcor(),turtle.ycor()) #獲取x,y坐標print(turtle.heading())#獲取箭頭朝向print(turtle.distance(100,100))#當前坐標與設置的坐標的距離turtle.clear() #清空繪圖窗口turtle.reset() #重新設置海龜狀態(tài)turtle.forward(100)#向前進100個像素if turtle.isvisible(): #判斷海龜是否可見,可見則后退300像素turtle.back(300)turtle.write('任性的90后boy')turtle.fillcolor('blue') #海龜?shù)念伾畛錇樗{色turtle.begin_fill() #開始填充turtle.goto(100,-100)turtle.forward(150)turtle.end_fill() #結束填充turtle.fillcolor('black') #turtle.begin_fill()turtle.pencolor('yellow')turtle.circle(40)turtle.end_fill()turtle.mainloop()
這一部分主要講海龜?shù)倪\行軌跡的變化過程。
36.海龜?shù)膯雍屯V?/span>
turtle.mainloop()turtle.done
37.設置海龜?shù)哪J?/span>
turtle.mode(mode) standard 逆時針 它 順時針 world38.設置或返回以毫秒為單位的繪圖延遲
turtle.delay(delay=None)39.開始記錄多邊形的第一個頂點
turtle.begin_poly()40.停止記錄多邊形的最后一個頂點
turtle.end_poly()41.返回最后記錄的多邊形
turtle.get_poly()
turtle.Screen().title('繪圖工具') #設置繪圖窗口的標題t=turtle.screensize(400,400, "red") #畫布大小背景顏色turtle.setup(width=600,height=600, startx=300, starty=50) #繪圖窗口的大小和起始坐標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() #結束記錄print(turtle.get_poly()) #獲取捕獲到的繪圖坐標turtle.clear() #清除當前繪圖turtle.mode('它')turtle.forward(100)turtle.ht() #隱藏turtle.left(100)turtle.delay(delay=100)#每100毫秒繪制一點turtle.goto(200,50)turtle.st() #顯示turtle.reset()#回到起點time.sleep(1)for x in range(100):for y in range(200):turtle.forward(100)turtle.left(200)turtle.goto(x,y) #不斷移動位置if turtle.pos()==(10,10): #如果當前位置為(10,10)turtle.done #銷毀窗口turtle.mainloop()

這里顯示了最初繪圖的坐標,其實它繪制的是一個矩形。
總結
從這里看出,海龜畫圖的確是一個很不錯的模塊,它能十分迅速并且很方便的幫助我們進行繪圖,只需要短短幾個辨識度比較高的英文進行組合便可以繪制精美的圖形。當然它還有很多其它的用法,這里不在一一細說,大家可以慢慢琢磨。
- EOF -
推薦閱讀:
評論
圖片
表情
