Python學(xué)習(xí)筆記:從入門到放棄(3)在蟒蛇中用海龜畫畫

? ? 最近待家里十分怠惰,學(xué)習(xí)完后沒有及時(shí)整理,現(xiàn)在算是補(bǔ)上之前欠下的內(nèi)容,留作記錄。

Turtle
????海龜繪圖很適合用來引導(dǎo)孩子學(xué)習(xí)編程。 最初來自于 Wally Feurzeig, Seymour Papert 和 Cynthia Solomon 于 1967 年所創(chuàng)造的 Logo 編程語言。
????調(diào)用該py庫無需下載,只需Python版本安裝了 Tk 支持,使用import turtle即可使用。
面向?qū)ο蟮慕涌谥饕褂谩?+2”個(gè)類:
????Turtlescreen?類定義圖形窗口作為繪圖海龜?shù)拇翱凇creen()函數(shù)返回一個(gè)TurtleScreen子類的單例對(duì)象。TurtleScreen/Screen 的所有方法還存在對(duì)應(yīng)的函數(shù),即作為面向過程的接口組成部分。
????RawTurtle(別名:RawTurtle) 類定義海龜對(duì)象在屏幕上繪圖。從 RawTurtle 派生出子類Turtle(別名:Pen),該類對(duì)象在上繪圖,如果實(shí)例不存在則會(huì)自動(dòng)創(chuàng)建。

Turtle API
海龜動(dòng)作
移動(dòng)和繪制:
forward()?|?fd()?前進(jìn)
backward()?|?bk()?|?back()?后退
right()?|?rt()?右轉(zhuǎn)
left()?|?lt()?左轉(zhuǎn)
goto()?|?setpos()?|?setposition()?前往/定位
setx()?設(shè)置x坐標(biāo)
sety()?設(shè)置y坐標(biāo)
setheading()?|?seth()?設(shè)置朝向
home()?返回原點(diǎn)
circle()?畫圓
dot()?畫點(diǎn)
stamp()?印章
clearstamp()?清除印章
clearstamps()?清除多個(gè)印章
undo()?撤消
speed()?速度
獲取海龜?shù)臓顟B(tài)
position()?|?pos()?位置
towards()?目標(biāo)方向
xcor()?x坐標(biāo)
ycor()?y坐標(biāo)
heading()?朝向
distance()?距離
position()?|?pos()?位置
towards()?目標(biāo)方向
xcor()?x坐標(biāo)
ycor()?y坐標(biāo)
heading()?朝向
distance()?距離
設(shè)置與度量單位
degrees()?角度
radians()?弧度
畫筆控制
繪圖狀態(tài)
pendown()?|?pd()?|?down()?畫筆落下
penup()?|?pu()?|?up()?畫筆抬起
pensize()?|?width()?畫筆粗細(xì)
pen()?畫筆
isdown()?畫筆是否落下
顏色控制
color()?顏色
pencolor()?畫筆顏色
fillcolor()?填充顏色
填充
filling()?是否填充
begin_fill()?開始填充
end_fill()?結(jié)束填充
更多繪圖控制
reset()?重置
clear()?清空
write()?書寫
海龜狀態(tài)
可見性
showturtle()?|?st()?顯示海龜
hideturtle()?|?ht()?隱藏海龜
isvisible()?是否可見
外觀
shape()?形狀
resizemode()?大小調(diào)整模式
shapesize()?|?turtlesize()?形狀大小
shearfactor()?剪切因子
settiltangle()?設(shè)置傾角
tiltangle()?傾角
tilt()?傾斜
shapetransform()?變形
get_shapepoly()?獲取形狀多邊形
使用事件
onclick()?當(dāng)鼠標(biāo)點(diǎn)擊
onrelease()?當(dāng)鼠標(biāo)釋放
ondrag()?當(dāng)鼠標(biāo)拖動(dòng)
特殊海龜方法
begin_poly()?開始記錄多邊形
end_poly()?結(jié)束記錄多邊形
get_poly()?獲取多邊形
clone()?克隆
getturtle()?|?getpen()?獲取海龜畫筆
getscreen()?獲取屏幕
setundobuffer()?設(shè)置撤消緩沖區(qū)
undobufferentries()?撤消緩沖區(qū)條目數(shù)

TurtleScreen/Screen API
窗口控制
bgcolor()?背景顏色
bgpic()?背景圖片
clear()?|?clearscreen()?清屏
reset()?|?resetscreen()?重置
screensize()?屏幕大小
setworldcoordinates()?設(shè)置世界坐標(biāo)系
動(dòng)畫控制
delay()?延遲
tracer()?追蹤
update()?更新
使用屏幕事件
listen()?監(jiān)聽
onkey()?|?onkeyrelease()?當(dāng)鍵盤按下并釋放
onkeypress()?當(dāng)鍵盤按下
onclick()?|?onscreenclick()?當(dāng)點(diǎn)擊屏幕
ontimer()?當(dāng)達(dá)到定時(shí)
mainloop()?|?done()?主循環(huán)
設(shè)置與特殊方法
mode()?模式
colormode()?顏色模式
getcanvas()?獲取畫布
getshapes()?獲取形狀
register_shape()?|?addshape()?添加形狀
turtles()?所有海龜
window_height()?窗口高度
window_width()?窗口寬度
輸入方法
textinput()?文本輸入
numinput()?數(shù)字輸入
Screen 專有方法
bye()?退出
exitonclick()?當(dāng)點(diǎn)擊時(shí)退出
setup()?設(shè)置
title()?標(biāo)題
????其中表示顏色時(shí)需要按照R,G,B的格式進(jìn)行表示,每種顏色的數(shù)字必須都在0-255之間,部分顏色可以使用諸如'red',?'orange',?'yellow',?'green',?'cyan',?'blue',?'purple',?'pink'來表示。
所有函數(shù)的具體表現(xiàn)形式參照:
https://docs.python.org/zh-cn/3/library/turtle.html#turtle.colormode
?

例程1
畫出一朵五彩花


例程2
旋風(fēng)棒棒糖


參考文章:?
turtle --- 海龜繪圖:https://docs.python.org/zh-cn/3/library/turtle.html#turtle.colormode
《Python語言應(yīng)用》 西安外國(guó)語大學(xué) 康俊民