| turtle是python編程的一個(gè)非標(biāo)準(zhǔn)庫,可以通過機(jī)器指令的方式來在一款空白的畫布上完成繪圖。 可以將它理解成生活中一個(gè)畫筆,通過調(diào)整畫筆的顏色、寬度等、其次設(shè)置畫筆的軌跡從而畫出一幅圖。 繪畫時(shí)默認(rèn)的畫筆起點(diǎn)就是屏幕的正中間位置(也就是坐標(biāo)0,0),畫筆的命令一般分為兩種。 一種是設(shè)置畫筆參數(shù)的相關(guān)指令,另一種則是畫筆的運(yùn)動(dòng)指令,也就是畫筆繪畫的軌跡設(shè)定,再對(duì)軌跡運(yùn)動(dòng)后產(chǎn)生的圖形進(jìn)行圖案的填充即可完成。 一般在開始繪畫之前會(huì)進(jìn)行對(duì)畫筆全局參數(shù)指定的設(shè)置,并且可以將一些公共的后期繪畫過程中不會(huì)改變的屬性進(jìn)行設(shè)置。 | Turtle 函數(shù)使用 
 | 相關(guān)函數(shù)說明 
 |  | turtle.clear() | 清空畫布中的內(nèi)容,但是此時(shí)畫筆的起點(diǎn)還是在原來的位置不會(huì)改變 |  | turtle.reset() | 清空畫布中的內(nèi)容,并且畫筆狀態(tài)為起始狀態(tài) |  | turtle.undo() | 撤銷上一個(gè)繪畫動(dòng)作 |  | turtle.isvisible() | 查看當(dāng)前畫筆的狀態(tài)是否為可見狀態(tài) |  | stamp() | 復(fù)制當(dāng)前畫好的圖形 |  | turtle.write(s [,font=(“font-name”,font_size,“font_type”)]) | 向畫布中寫入內(nèi)容,并設(shè)置寫入內(nèi)容的大小、顏色等 | 
 通過對(duì)畫筆的寬度、速度、顏色等相關(guān)的參數(shù)設(shè)置實(shí)現(xiàn)比較漂亮的繪圖效果,若是不喜歡畫筆在畫布上面的展示還可以將其隱藏等等。 | Trutle 函數(shù)使用 
 | 相關(guān)函數(shù)說明 
 |  | turtle.pensize() | 設(shè)置畫筆的寬度 |  | turtle.pencolor(color) | 設(shè)置畫筆的顏色,顏色支持三種格式的顏色表示方法 |  | turtle.speed(speed) | 設(shè)置畫筆移動(dòng)速度,畫筆繪制的速度范圍[0,10]整數(shù),數(shù)字越大越快 |  | turtle.fillcolor(colorstring) | 繪制圖形的填充顏色,一般放在開始填充、結(jié)束填充的函數(shù)之間 |  | turtle.color(color1, color2) | 第一個(gè)參數(shù)為畫筆顏色設(shè)置、第二個(gè)則為填充顏色 |  | turtle.filling() | 查看當(dāng)前是否在填充狀態(tài) |  | turtle.begin_fill() | 開始填充顏色 |  | turtle.end_fill() | 結(jié)束填充顏色 |  | turtle.hideturtle() | 隱藏畫筆 |  | turtle.showturtle() | 顯示畫筆 | 
 整個(gè)繪圖的圖形、輪廓等繪制都是通過不斷的調(diào)整畫筆的運(yùn)動(dòng)參數(shù)以及畫筆的抬起或放下來完成的,就是模仿一個(gè)人的繪畫過程來實(shí)現(xiàn)的。 上面對(duì)于turtle的畫筆的相關(guān)設(shè)置基本涵蓋了日常繪畫過程中需要用到的所有函數(shù),下面通過幾個(gè)比較常見的小例子來實(shí)戰(zhàn)一下。| Turtle 函數(shù)使用 
 | 相關(guān)函數(shù)說明 
 |  | turtle.forward(distance) | 向當(dāng)前畫筆方向移動(dòng)distance像素長(zhǎng)度 |  | turtle.backward(distance) | 向當(dāng)前畫筆相反方向移動(dòng)distance像素長(zhǎng)度 |  | turtle.right(degree) | 順時(shí)針移動(dòng)degree° |  | turtle.left(degree) | 逆時(shí)針移動(dòng)degree° |  | turtle.pendown() | 移動(dòng)時(shí)繪制圖形,缺省時(shí)也為繪制 |  | turtle.goto(x,y) | 將畫筆移動(dòng)到坐標(biāo)為x,y的位置 |  | turtle.penup() | 提起筆移動(dòng),不繪制圖形,用于另起一個(gè)地方繪制 |  | turtle.circle(radius,extent) | 根據(jù)半徑radius繪制extent角度的弧形,若是繪制圓形則不需要extent參數(shù) |  | turtle.setx() | 將當(dāng)前x軸移動(dòng)到指定位置 |  | turtle.sety() | 將當(dāng)前y軸移動(dòng)到指定位置 |  | turtle.setheading(angle) | 設(shè)置畫筆箭頭的朝向 |  | turtle.home() | 將當(dāng)前畫筆的坐標(biāo)位置設(shè)置為原點(diǎn) |  | turtle.dot() | 繪制一個(gè)指定直徑和顏色的圓點(diǎn) |  | turtle.setpos(x,y) | 設(shè)置畫筆的位置(x,y)坐標(biāo) |  | turtle.pos() | 獲取當(dāng)前的畫筆的坐標(biāo)位置 |  | turtle.xcor() | 獲取X坐標(biāo)值 |  | turtle.ycor() | 獲取Y坐標(biāo)值 | 
 若是沒有安裝turtle小烏龜?shù)目梢詐ip的方式安裝一下即可,將命令放在下面。 pip install turtle -i https://pypi.tuna./simple/
 在其他平臺(tái)上發(fā)現(xiàn)的玫瑰花的繪制過程,這里優(yōu)化了一下隱藏了一些參數(shù)以及設(shè)置了畫筆相關(guān)的屬性,如有雷同、純屬巧合。 
 Importing the turtle module and renaming it to tle.import turtle as tle
 
 # 初始化畫筆的全局參數(shù)屬性設(shè)置
 
 tle.hideturtle()
 tle.pensize(3)
 tle.penup()
 tle.left(90)
 tle.forward(200)
 tle.pendown()
 tle.right(90)
 
 # 繪制玫瑰花的花蕊畫筆運(yùn)動(dòng)軌跡設(shè)置
 
 tle.fillcolor("red")
 tle.begin_fill()
 tle.circle(10, 180)
 tle.circle(25, 110)
 tle.left(50)
 tle.circle(60, 45)
 tle.circle(20, 170)
 tle.right(24)
 tle.forward(30)
 tle.left(10)
 tle.circle(30, 110)
 tle.forward(20)
 tle.left(40)
 tle.circle(90, 70)
 tle.circle(30, 150)
 tle.right(30)
 tle.forward(15)
 tle.circle(80, 90)
 tle.left(15)
 tle.forward(45)
 tle.right(165)
 tle.forward(20)
 tle.left(155)
 tle.circle(150, 80)
 tle.left(50)
 tle.circle(150, 90)
 tle.end_fill()
 
 # 繪制玫瑰花的上部分花瓣的運(yùn)動(dòng)軌跡參數(shù)設(shè)置
 
 tle.left(150)
 tle.circle(-90, 70)
 tle.left(20)
 tle.circle(75, 105)
 tle.setheading(60)
 tle.circle(80, 98)
 tle.circle(-90, 40)
 
 # 繪制玫瑰花的下部分花瓣的運(yùn)動(dòng)軌跡參數(shù)設(shè)置
 
 tle.left(180)
 tle.circle(90, 40)
 tle.circle(-80, 98)
 tle.setheading(-83)
 
 # 繪制玫瑰花的上部分綠葉的運(yùn)動(dòng)軌跡參數(shù)設(shè)置
 
 tle.forward(30)
 tle.left(90)
 tle.forward(25)
 tle.left(45)
 tle.fillcolor("green")
 tle.begin_fill()
 tle.circle(-80, 90)
 tle.right(90)
 tle.circle(-80, 90)
 tle.end_fill()
 
 tle.right(135)
 tle.forward(60)
 tle.left(180)
 tle.forward(85)
 tle.left(90)
 tle.forward(80)
 
 # 繪制玫瑰花的下部分綠葉的運(yùn)動(dòng)軌跡參數(shù)設(shè)置
 
 tle.right(90)
 tle.right(45)
 tle.fillcolor("green")
 tle.begin_fill()
 tle.circle(80, 90)
 tle.left(90)
 tle.circle(80, 90)
 tle.end_fill()
 
 tle.left(135)
 tle.forward(60)
 tle.left(180)
 tle.forward(60)
 tle.right(90)
 tle.circle(200, 60)
 
 # 完成繪圖
 tle.done()
 
 「Python 集中營(yíng)」,只做知識(shí)分享 ! |