目錄
- 一、寫在前面
- 二、效果圖
- 三、詳細(xì)步驟拆分講解
- 第一步:貓臉?biāo){色外圈
- 第二步:貓臉白色內(nèi)圈
- 第三步:鼻子
- 第四步:鼻尖白色圓點(diǎn)
- 第五步:左眼
- 第六步:右眼
- 第七步:左眼內(nèi)部
- 第八步:右眼內(nèi)部
- 第九步:右眼內(nèi)部白色圓點(diǎn)
- 第十步:鼻子下面黑色豎線
- 第十一步:右邊胡子
- 第十二步:左邊胡子
- 第十三步:嘴巴
- 第十四步:舌頭
- 第十五步:領(lǐng)帶/紅色圍巾
- 第十六步:鈴鐺
- 四、收尾
一、寫在前面
本文基于64位windows系統(tǒng)(鼠標(biāo)右鍵點(diǎn)擊桌面“此電腦”圖標(biāo)——屬性可查看電腦系統(tǒng)版本)、python3.x(pycharm自動(dòng)安裝的版本, 3.0以上)。文中代碼內(nèi)容所使用的工具是pycharm-community-2020.1
,實(shí)踐中如有碰到問題,可留言提問。
前陣子有看到zh上有大神畫了這個(gè)哆啦A夢的大頭貼,自己也來試了一下,很簡單,但長篇整段的代碼對(duì)剛剛學(xué)會(huì)海龜繪圖語法的初學(xué)者來說還是有一定難度,所以來做一個(gè)拆解版詳細(xì)步驟講解實(shí)現(xiàn)。
二、效果圖
言歸正傳,先上效果圖。
三、詳細(xì)步驟拆分講解
第一步:貓臉?biāo){色外圈
調(diào)整畫筆粗細(xì)到8
隱藏畫筆
畫一個(gè)半徑為120的圓
填充成藍(lán)色(顏色值由取色吸管吸色測量得出)
import turtle as t
t.pensize(8)
t.hideturtle()
# 貓臉外圈藍(lán)色
t.fillcolor('#00A1E8')
t.begin_fill()
t.circle(120)
t.end_fill()
第二步:貓臉白色內(nèi)圈
調(diào)整畫筆粗細(xì)到3
畫一個(gè)半徑為100的圓
填充成白色(顏色值由取色吸管吸色測量得出)
# 貓臉內(nèi)圈白色
t.pensize(3)
t.fillcolor('white')
t.begin_fill()
t.circle(100)
t.end_fill()
第三步:鼻子
抬起畫筆
移動(dòng)至坐標(biāo)(0,134)準(zhǔn)備畫鼻子
調(diào)整畫筆粗細(xì)到4
落下畫筆
畫一個(gè)半徑為18的圓
填充成紅色(顏色值由取色吸管吸色測量得出)
# 鼻子
t.penup()
t.home()
t.goto(0, 134)
t.pendown()
t.pensize(4)
t.fillcolor("#EA0014")
t.begin_fill()
t.circle(18)
t.end_fill()
第四步:鼻尖白色圓點(diǎn)
抬起畫筆
移動(dòng)至坐標(biāo)(7,155)準(zhǔn)備畫鼻尖的白色圓點(diǎn)
調(diào)整畫筆粗細(xì)到2
落下畫筆
畫一個(gè)半徑為4的圓
畫筆白色,填充白色(顏色值由取色吸管吸色測量得出)
# 鼻尖
t.penup()
t.goto(7, 155)
t.pensize(2)
t.color('white', 'white')
t.pendown()
t.begin_fill()
t.circle(4)
t.end_fill()
第五步:左眼
抬起畫筆
移動(dòng)至坐標(biāo)(-30,160)準(zhǔn)備畫左眼
調(diào)整畫筆粗細(xì)到4
落下畫筆
畫筆黑色,填充白色(顏色值由取色吸管吸色測量得出)
定義繪制步長變量a,設(shè)置初始值為0.4
循環(huán)控制總角度120:
當(dāng)角度等于0-30度或角度等于60-90度時(shí):
每循環(huán)一次步長a增加0.08
每循環(huán)一次畫筆左轉(zhuǎn)3度
每循環(huán)一次向前繪制步長變量a
否則:
每循環(huán)一次步長a減少0.08
每循環(huán)一次畫筆左轉(zhuǎn)3度
每循環(huán)一次向前繪制步長變量a
# 左眼
t.penup()
t.goto(-30, 160)
t.pensize(4)
t.pendown()
t.color('black', 'white')
t.begin_fill()
a = 0.4
for i in range(120):
if 0 = i 30 or 60 = i 90:
a = a + 0.08
t.left(3) # 向左轉(zhuǎn)3度
t.forward(a) # 向前走a的步長
else:
a = a - 0.08
t.left(3)
t.forward(a)
t.end_fill()
第六步:右眼
抬起畫筆
移動(dòng)至坐標(biāo)(30,160)準(zhǔn)備畫右眼
調(diào)整畫筆粗細(xì)到4
落下畫筆
畫筆黑色,填充白色(顏色值由取色吸管吸色測量得出)
循環(huán)控制總角度120:
當(dāng)角度等于0-30度或角度等于60-90度時(shí):
每循環(huán)一次步長a增加0.08
每循環(huán)一次畫筆左轉(zhuǎn)3度
每循環(huán)一次向前繪制步長變量a
否則:
每循環(huán)一次步長a減少0.08
每循環(huán)一次畫筆左轉(zhuǎn)3度
每循環(huán)一次向前繪制步長變量a
# 右眼
t.penup()
t.goto(30, 160)
t.pensize(4)
t.pendown()
t.color('black', 'white')
t.begin_fill()
for i in range(120):
if 0 = i 30 or 60 = i 90:
a = a + 0.08
t.left(3) # 向左轉(zhuǎn)3度
t.forward(a) # 向前走a的步長
else:
a = a - 0.08
t.left(3)
t.forward(a)
t.end_fill()
第七步:左眼內(nèi)部
抬起畫筆
移動(dòng)至坐標(biāo)(-38,190)準(zhǔn)備畫左眼內(nèi)部
調(diào)整畫筆粗細(xì)到8
落下畫筆
右轉(zhuǎn)-30度,繪制步長15的線條
右轉(zhuǎn)70度,繪制步長15的線條
# 左眼內(nèi)部
t.penup()
t.goto(-38, 190)
t.pensize(8)
t.pendown()
t.right(-30)
t.forward(15)
t.right(70)
t.forward(15)
第八步:右眼內(nèi)部
抬起畫筆
移動(dòng)至坐標(biāo)(15,185)準(zhǔn)備畫右眼內(nèi)部黑色眼球
調(diào)整畫筆粗細(xì)到4
落下畫筆
畫筆黑色,填充黑色(顏色值由取色吸管吸色測量得出)
畫一個(gè)半徑為13的圓
# 右眼內(nèi)部
t.penup()
t.goto(15, 185)
t.pensize(4)
t.pendown()
t.color('black', 'black')
t.begin_fill()
t.circle(13)
t.end_fill()
第九步:右眼內(nèi)部白色圓點(diǎn)
抬起畫筆
移動(dòng)至坐標(biāo)(13,190)準(zhǔn)備畫右眼黑色眼球內(nèi)部的白色圓點(diǎn)
調(diào)整畫筆粗細(xì)到2
落下畫筆
畫筆白色,填充白色(顏色值由取色吸管吸色測量得出)
畫一個(gè)半徑為5的圓
# 右眼內(nèi)部白色圓點(diǎn)
t.penup()
t.goto(13, 190)
t.pensize(2)
t.pendown()
t.color('white', 'white')
t.begin_fill()
t.circle(5)
t.end_fill()
第十步:鼻子下面黑色豎線
抬起畫筆
移動(dòng)至坐標(biāo)(0,134)并恢復(fù)初始狀態(tài),準(zhǔn)備畫鼻子下面的黑色豎線
調(diào)整畫筆粗細(xì)到4
落下畫筆
畫筆黑色(顏色值由取色吸管吸色測量得出)
右轉(zhuǎn)90度
繪制步長40的線條
# 鼻子下面的黑色豎線
t.penup()
t.home()
t.goto(0, 134)
t.pensize(4)
t.pencolor('black')
t.pendown()
t.right(90)
t.forward(40)
第十一步:右邊胡子
抬起畫筆
移動(dòng)至坐標(biāo)(0,124)并恢復(fù)初始狀態(tài),準(zhǔn)備畫右邊從上往下數(shù)的第1根胡子
調(diào)整畫筆粗細(xì)到3
落下畫筆
畫筆黑色(顏色值由取色吸管吸色測量得出)
左轉(zhuǎn)10度
繪制步長80的線條
————————————————————————————————
抬起畫筆
移動(dòng)至坐標(biāo)(0,114)并恢復(fù)初始狀態(tài),準(zhǔn)備畫右邊從上往下數(shù)的第2根胡子
調(diào)整畫筆粗細(xì)到3
落下畫筆
畫筆黑色(顏色值由取色吸管吸色測量得出)
左轉(zhuǎn)6度
繪制步長80的線條
————————————————————————————————
抬起畫筆
移動(dòng)至坐標(biāo)(0,104)并恢復(fù)初始狀態(tài),準(zhǔn)備畫右邊從上往下數(shù)的第3根胡子
調(diào)整畫筆粗細(xì)到3
落下畫筆
畫筆黑色(顏色值由取色吸管吸色測量得出)
左轉(zhuǎn)0度
繪制步長80的線條
# 右邊的胡子(第1根)
t.penup()
t.home()
t.goto(0, 124)
t.pensize(3)
t.pencolor('black')
t.pendown()
t.left(10)
t.forward(80)
# 右邊的胡子(第2根)
t.penup()
t.home()
t.goto(0, 114)
t.pensize(3)
t.pencolor('black')
t.pendown()
t.left(6)
t.forward(80)
# 右邊的胡子(第3根)
t.penup()
t.home()
t.goto(0, 104)
t.pensize(3)
t.pencolor('black')
t.pendown()
t.left(0)
t.forward(80)
第十二步:左邊胡子
抬起畫筆
移動(dòng)至坐標(biāo)(0,124)并恢復(fù)初始狀態(tài),準(zhǔn)備畫左邊從上往下數(shù)的第1根胡子
調(diào)整畫筆粗細(xì)到3
落下畫筆
畫筆黑色(顏色值由取色吸管吸色測量得出)
左轉(zhuǎn)170度
繪制步長80的線條
————————————————————————————————
抬起畫筆
移動(dòng)至坐標(biāo)(0,114)并恢復(fù)初始狀態(tài),準(zhǔn)備畫左邊從上往下數(shù)的第2根胡子
調(diào)整畫筆粗細(xì)到3
落下畫筆
畫筆黑色(顏色值由取色吸管吸色測量得出)
左轉(zhuǎn)174度
繪制步長80的線條
————————————————————————————————
抬起畫筆
移動(dòng)至坐標(biāo)(0,104)并恢復(fù)初始狀態(tài),準(zhǔn)備畫左邊從上往下數(shù)的第3根胡子
調(diào)整畫筆粗細(xì)到3
落下畫筆
畫筆黑色(顏色值由取色吸管吸色測量得出)
左轉(zhuǎn)180度
繪制步長80的線條
# 左邊的胡子(第1根)
t.penup()
t.home()
t.goto(0, 124)
t.pensize(3)
t.pencolor('black')
t.pendown()
t.left(170)
t.forward(80)
# 左邊的胡子(第2根)
t.penup()
t.home()
t.goto(0, 114)
t.pensize(3)
t.pencolor('black')
t.pendown()
t.left(174)
t.forward(80)
# 左邊的胡子(第3根)
t.penup()
t.home()
t.goto(0, 104)
t.pensize(3)
t.pencolor('black')
t.pendown()
t.left(180)
t.forward(80)
第十三步:嘴巴
抬起畫筆
移動(dòng)至坐標(biāo)(-70,70),準(zhǔn)備畫下邊沿圓弧
調(diào)整畫筆粗細(xì)到6
落下畫筆
畫筆黑色,填充紅色(顏色值由取色吸管吸色測量得出)
恢復(fù)畫筆初始方向并右轉(zhuǎn)60度
繪制半徑80,角度40的圓弧
繪制半徑80,角度80的圓弧
————————————————————————————————
抬起畫筆
恢復(fù)初始
移動(dòng)至坐標(biāo)(-80,70),準(zhǔn)備畫上邊沿橫線
落下畫筆
繪制步長160的線條
# 嘴巴(下邊沿圓弧和顏色填充)
t.penup()
t.goto(-70, 70)
t.pendown()
t.color('black', 'red')
t.pensize(6)
t.setheading(-60)
t.begin_fill()
t.circle(80, 40)
t.circle(80, 80)
t.end_fill()
# 嘴巴(上邊沿的橫線)
t.penup()
t.home()
t.goto(-80, 70)
t.pendown()
t.forward(160)
第十四步:舌頭
抬起畫筆
恢復(fù)初始
移動(dòng)至坐標(biāo)(-50,50),準(zhǔn)備畫舌頭
調(diào)整畫筆粗細(xì)到1
落下畫筆
畫筆黑色,填充土黃色(顏色值由取色吸管吸色測量得出)
恢復(fù)畫筆初始方向并左轉(zhuǎn)40度
繪制半徑-40,角度40的圓弧
繪制半徑-40,角度40的圓弧
恢復(fù)畫筆初始方向并左轉(zhuǎn)40度
繪制半徑-40,角度40的圓弧
繪制半徑-40,角度40的圓弧
恢復(fù)畫筆初始方向并左轉(zhuǎn)220度
繪制半徑-80,角度40的圓弧
繪制半徑-80,角度40的圓弧
# 舌頭
t.penup()
t.home()
t.goto(-50, 50)
t.pendown()
t.pensize(1)
t.fillcolor("#eb6e1a")
t.setheading(40)
t.begin_fill()
t.circle(-40, 40)
t.circle(-40, 40)
t.setheading(40)
t.circle(-40, 40)
t.circle(-40, 40)
t.setheading(220)
t.circle(-80, 40)
t.circle(-80, 40)
t.end_fill()
第十五步:領(lǐng)帶/紅色圍巾
抬起畫筆
移動(dòng)至坐標(biāo)(-70,12),準(zhǔn)備畫紅色圍巾
調(diào)整畫筆粗細(xì)到14
落下畫筆
畫筆紅色(顏色值由取色吸管吸色測量得出)
恢復(fù)畫筆初始方向并右轉(zhuǎn)20度
繪制半徑200,角度30的圓弧
繪制半徑200,角度10的圓弧
# 領(lǐng)帶
t.penup()
t.goto(-70, 12)
t.pensize(14)
t.pencolor('red')
t.pendown()
t.setheading(-20)
t.circle(200, 30)
t.circle(200, 10)
第十六步:鈴鐺
抬起畫筆
移動(dòng)至坐標(biāo)(0,-46),準(zhǔn)備畫鈴鐺
調(diào)整畫筆粗細(xì)到3
落下畫筆
畫筆黑色,填充黃色(顏色值由取色吸管吸色測量得出)
繪制一個(gè)半徑25的圓
————————————————————————————————
抬起畫筆
移動(dòng)至坐標(biāo)(-5,-40),準(zhǔn)備畫鈴鐺細(xì)節(jié)部分
調(diào)整畫筆粗細(xì)到2
畫筆黑色,填充黃綠色(顏色值由取色吸管吸色測量得出)
繪制一個(gè)半徑5的圓
調(diào)整畫筆粗細(xì)到3
右轉(zhuǎn)115度
繪制步長7的線條
# 鈴鐺
t.penup()
t.goto(0, -46)
t.pendown()
t.pensize(3)
t.color("black", '#f8d102')
t.begin_fill()
t.circle(25)
t.end_fill()
# 鈴鐺細(xì)節(jié)
t.penup()
t.goto(-5, -40)
t.pendown()
t.pensize(2)
t.color("black", '#79675d')
t.begin_fill()
t.circle(5)
t.end_fill()
t.pensize(3)
t.right(115)
t.forward(7)
四、收尾
繪制結(jié)束后停留在繪制頁面
到此這篇關(guān)于Python實(shí)戰(zhàn)之畫哆啦A夢(超詳細(xì)步驟)的文章就介紹到這了,更多相關(guān)Python畫哆啦A夢內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- 使用Python對(duì)Syslog信息進(jìn)行分析并繪圖的實(shí)現(xiàn)
- 用Python的繪圖庫(matplotlib)繪制小波能量譜
- python matplotlib繪圖實(shí)現(xiàn)刪除重復(fù)冗余圖例的操作
- python 繪圖模塊matplotlib的使用簡介
- python之 matplotlib和pandas繪圖教程
- python繪圖模塊之利用turtle畫圖
- python繪圖pyecharts+pandas的使用詳解
- Python下使用Trackbar實(shí)現(xiàn)繪圖板
- Python數(shù)據(jù)可視化常用4大繪圖庫原理詳解
- Python三維繪圖之Matplotlib庫的使用方法
- Python Matplotlib繪圖基礎(chǔ)知識(shí)代碼解析
- Python繪圖之二維圖與三維圖詳解
- Python繪圖之柱形圖繪制詳解
- Python實(shí)現(xiàn)手繪圖效果實(shí)例分享