python怎么画卡通人物_Python繪制可愛的卡通人物 | 【turtle使用】

Turtle庫 簡介

什么是Turtle

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

Turtle庫基礎知識

1.畫布(canvas)

畫布就是turtle為我們展開用於繪圖區域默認大小(400, 300),我們可以設置它的大小和初始位置。

2.畫筆(pen)

2.1畫筆的狀態

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

2.2 畫筆的屬性

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

1) turtle.pensize():設置畫筆的寬度;

2) turtle.pencolor():沒有參數傳入,返回當前畫筆顏色,傳入參數設置畫筆顏色,可以是字符串如"green", "red",也可以是RGB 3元組。

3) turtle.speed(speed):設置畫筆移動速度,畫筆繪制的速度范圍[0,10]整數,數字越大越快。

2.3 繪圖命令

操縱海龜繪圖有着許多的命令,這些命令可以划分為3種:一種為運動命令,一種為畫筆控制命令,還有一種是全局控制命令。

2.3.1 畫筆運動命令:

命令

說明

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 畫筆控制命令:

命令

說明

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其他命令

命令

說明

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()              #結束

aa1c31b0ab56b800258770a37cda856b.png

aHR0cHM6Ly9wb3J0YWwucWluaXUuY29tL2J1Y2tldC93ZWl4aW4vaW5kZXgvRnVRRG10N1daeVhfTXdXaU1rbDNFQndFUzA5Ug==

代碼: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


版权声明:本文为weixin_30673719原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。