Python繪製可愛的卡通人物 | 【turtle使用】

Turtle庫 簡介

什麼是Turtle

首先,turtle庫是一個點線面的簡單圖像庫,可以完成一些比較簡單的幾何圖像可視化。它就像一個小烏龜,在一個橫軸爲x、縱軸爲y的座標系原點,(0,0)位置開始,它根據一組函數指令的控制,在這個平面座標系中移動,從而在它爬行的路徑上繪製了圖形。css

Turtle庫基礎知識

1.畫布(canvas)

畫布就是turtle爲咱們展開用於繪圖區域默認大小(400, 300),咱們能夠設置它的大小和初始位置。python

2.畫筆(pen)

2.1畫筆的狀態
在畫布上,默認有一個座標原點爲畫布中心的座標軸,座標原點上有一隻面朝x軸正方向小烏龜。這裏咱們描述小烏龜時使用了兩個詞語:座標原點(位置),面朝x軸正方向(方向), turtle繪圖中,就是使用位置方向描述小烏龜(畫筆)的狀態。git

2.2 畫筆的屬性
畫筆(畫筆的屬性,顏色、畫線的寬度等)github

1) turtle.pensize():設置畫筆的寬度;
2) turtle.pencolor():沒有參數傳入,返回當前畫筆顏色,傳入參數設置畫筆顏色,能夠是字符串如"green", "red",也能夠是RGB 3元組。
3) turtle.speed(speed):設置畫筆移動速度,畫筆繪製的速度範圍[0,10]整數,數字越大越快。
複製代碼

2.3 繪圖命令
操縱海龜繪圖有着許多的命令,這些命令能夠劃分爲3種:一種爲運動命令,一種爲畫筆控制命令,還有一種是全局控制命令。canvas

2.3.1 畫筆運動命令:app

命令 說明
turtle.home() 將turtle移動到起點(0,0)和向東
turtle.speed(speed) 畫筆繪製的速度範圍[0,10]整數
turtle.forward(distance) 向當前畫筆方向移動distance像素長
turtle.backward(distance) 向當前畫筆相反方向移動distance像素長度
turtle.right(degree) 順時針移動degree°
turtle.left(degree) 逆時針移動degree°
turtle.pendown() 移動時繪製圖形放下筆,,默認繪製
turtle.penup() 移動時不繪製圖形,提起筆,用於另起一個地方繪製時用
turtle.circle(r,extent,step) 繪製一個指定半徑、弧度範圍、階數(正多邊形)的圓
turtle.dot(diameter,color) 繪製一個指定直徑和顏色的圓

2.3.2 畫筆控制命令:ide

命令 說明
turtle.pencolor() 畫筆顏色
turtle.pensize(width) 畫筆寬度(繪製圖形時的寬度)
turtle.color(color1, color2) 同時設置pencolor=color1, fillcolor=color2
turtle.filling() 返回當前是否在填充狀態
turtle.begin_fill() 準備開始填充圖形
turtle.end_fill() 填充完成
turtle.hideturtle() 隱藏畫筆的turtle形狀
turtle.showturtle() 顯示畫筆的turtle形狀

2.3.3 全局控制命令函數

命令 說明
turtle.clear() 清空turtle窗口,可是turtle的位置和狀態不會改變
turtle.reset() 清空窗口,重置turtle狀態爲起始狀態
turtle.undo() 取消最後一個圖的操做
turtle.isvisible() 返回當前turtle是否可見
turtle.stamp() 複製當前圖形
turtle.write(s , [font=("font-name",font_size,"font_type")]) 寫文本,s爲文本內容,font是字體的參數,分別爲字體名稱,大小和類型;font爲可選項,font參數也是可選項

2.2.3其餘命令oop

命令 說明
turtle.mainloop()或turtle.done() 啓動事件循環 -調用Tkinter的mainloop函數。必須是烏龜圖形程序中的最後一個語句。
turtle.mode(mode=None) 設置烏龜模式(「standard」,「logo(向北或向上)」或「world()」)並執行重置。若是沒有給出模式,則返回當前模式。
turtle.undo() 取消最後一個圖的操做
turtle.isvisible() 返回當前turtle是否可見
turtle.stamp() 複製當前圖形
turtle.write(s , [font=("font-name",font_size,"font_type")]) 寫文本,s爲文本內容,font是字體的參數,分別爲字體名稱,大小和類型;font爲可選項,font參數也是可選項

Turtle總結和展現

Turtle能夠實現不少好玩的東西,例如我在知乎和其餘地方看到別人畫「小豬佩奇」,「叮噹貓」,「花花草草」等,世界很大,還有不少好玩的等着咱們!!!字體

def main():
    setting()           #畫布、畫筆設置
    nose(-100,100)      #鼻子
    head(-69,167)       #頭
    ears(0,160)         #耳朵
    eyes(0,140)         #眼睛
    cheek(80,10)        #腮
    mouth(-20,30)       #嘴
    body(-32,-8)        #身體
    hands(-56,-45)      #手
    foot(2,-177)        #腳
    tail(148,-155)      #尾巴
    done()              #結束
複製代碼

代碼:https://github.com/SCUTPZW/-visualization
https://github.com/AnthonyCoder/PythonSample/tree/master/turtle
主要參考:https://www.jianshu.com/p/df81a110cdfd
//www.zhihu.com/question/275611095/answer/382959285
附帶解決No Module named tkinker的問題
https://blog.csdn.net/qq_33144323/article/details/80556954

相關文章
相關標籤/搜索