Python實(shí)戰(zhàn)之畫(huà)哆啦A夢(mèng)(超詳細(xì)步驟)
一、寫(xiě)在前面
本文基于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í)踐中如有碰到問(wèn)題,可留言提問(wèn)。
前陣子有看到zh上有大神畫(huà)了這個(gè)哆啦A夢(mèng)的大頭貼,自己也來(lái)試了一下,很簡(jiǎn)單,但長(zhǎng)篇整段的代碼對(duì)剛剛學(xué)會(huì)海龜繪圖語(yǔ)法的初學(xué)者來(lái)說(shuō)還是有一定難度,所以來(lái)做一個(gè)拆解版詳細(xì)步驟講解實(shí)現(xiàn)。
二、效果圖
言歸正傳,先上效果圖。
三、詳細(xì)步驟拆分講解
第一步:貓臉?biāo){色外圈
調(diào)整畫(huà)筆粗細(xì)到8
隱藏畫(huà)筆
畫(huà)一個(gè)半徑為120的圓
填充成藍(lán)色(顏色值由取色吸管吸色測(cè)量得出)
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)整畫(huà)筆粗細(xì)到3
畫(huà)一個(gè)半徑為100的圓
填充成白色(顏色值由取色吸管吸色測(cè)量得出)
# 貓臉內(nèi)圈白色 t.pensize(3) t.fillcolor('white') t.begin_fill() t.circle(100) t.end_fill()
第三步:鼻子
抬起畫(huà)筆
移動(dòng)至坐標(biāo)(0,134)準(zhǔn)備畫(huà)鼻子
調(diào)整畫(huà)筆粗細(xì)到4
落下畫(huà)筆
畫(huà)一個(gè)半徑為18的圓
填充成紅色(顏色值由取色吸管吸色測(cè)量得出)
# 鼻子 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)
抬起畫(huà)筆
移動(dòng)至坐標(biāo)(7,155)準(zhǔn)備畫(huà)鼻尖的白色圓點(diǎn)
調(diào)整畫(huà)筆粗細(xì)到2
落下畫(huà)筆
畫(huà)一個(gè)半徑為4的圓
畫(huà)筆白色,填充白色(顏色值由取色吸管吸色測(cè)量得出)
# 鼻尖 t.penup() t.goto(7, 155) t.pensize(2) t.color('white', 'white') t.pendown() t.begin_fill() t.circle(4) t.end_fill()
第五步:左眼
抬起畫(huà)筆
移動(dòng)至坐標(biāo)(-30,160)準(zhǔn)備畫(huà)左眼
調(diào)整畫(huà)筆粗細(xì)到4
落下畫(huà)筆
畫(huà)筆黑色,填充白色(顏色值由取色吸管吸色測(cè)量得出)
定義繪制步長(zhǎng)變量a,設(shè)置初始值為0.4
循環(huán)控制總角度120:
當(dāng)角度等于0-30度或角度等于60-90度時(shí):
每循環(huán)一次步長(zhǎng)a增加0.08
每循環(huán)一次畫(huà)筆左轉(zhuǎn)3度
每循環(huán)一次向前繪制步長(zhǎng)變量a
否則:
每循環(huán)一次步長(zhǎng)a減少0.08
每循環(huán)一次畫(huà)筆左轉(zhuǎn)3度
每循環(huán)一次向前繪制步長(zhǎng)變量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的步長(zhǎng) else: a = a - 0.08 t.left(3) t.forward(a) t.end_fill()
第六步:右眼
抬起畫(huà)筆
移動(dòng)至坐標(biāo)(30,160)準(zhǔn)備畫(huà)右眼
調(diào)整畫(huà)筆粗細(xì)到4
落下畫(huà)筆
畫(huà)筆黑色,填充白色(顏色值由取色吸管吸色測(cè)量得出)
循環(huán)控制總角度120:
當(dāng)角度等于0-30度或角度等于60-90度時(shí):
每循環(huán)一次步長(zhǎng)a增加0.08
每循環(huán)一次畫(huà)筆左轉(zhuǎn)3度
每循環(huán)一次向前繪制步長(zhǎng)變量a
否則:
每循環(huán)一次步長(zhǎng)a減少0.08
每循環(huán)一次畫(huà)筆左轉(zhuǎn)3度
每循環(huán)一次向前繪制步長(zhǎng)變量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的步長(zhǎng) else: a = a - 0.08 t.left(3) t.forward(a) t.end_fill()
第七步:左眼內(nèi)部
抬起畫(huà)筆
移動(dòng)至坐標(biāo)(-38,190)準(zhǔn)備畫(huà)左眼內(nèi)部
調(diào)整畫(huà)筆粗細(xì)到8
落下畫(huà)筆
右轉(zhuǎn)-30度,繪制步長(zhǎng)15的線條
右轉(zhuǎn)70度,繪制步長(zhǎng)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)部
抬起畫(huà)筆
移動(dòng)至坐標(biāo)(15,185)準(zhǔn)備畫(huà)右眼內(nèi)部黑色眼球
調(diào)整畫(huà)筆粗細(xì)到4
落下畫(huà)筆
畫(huà)筆黑色,填充黑色(顏色值由取色吸管吸色測(cè)量得出)
畫(huà)一個(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)
抬起畫(huà)筆
移動(dòng)至坐標(biāo)(13,190)準(zhǔn)備畫(huà)右眼黑色眼球內(nèi)部的白色圓點(diǎn)
調(diào)整畫(huà)筆粗細(xì)到2
落下畫(huà)筆
畫(huà)筆白色,填充白色(顏色值由取色吸管吸色測(cè)量得出)
畫(huà)一個(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()
第十步:鼻子下面黑色豎線
抬起畫(huà)筆
移動(dòng)至坐標(biāo)(0,134)并恢復(fù)初始狀態(tài),準(zhǔn)備畫(huà)鼻子下面的黑色豎線
調(diào)整畫(huà)筆粗細(xì)到4
落下畫(huà)筆
畫(huà)筆黑色(顏色值由取色吸管吸色測(cè)量得出)
右轉(zhuǎn)90度
繪制步長(zhǎng)40的線條
# 鼻子下面的黑色豎線 t.penup() t.home() t.goto(0, 134) t.pensize(4) t.pencolor('black') t.pendown() t.right(90) t.forward(40)
第十一步:右邊胡子
抬起畫(huà)筆
移動(dòng)至坐標(biāo)(0,124)并恢復(fù)初始狀態(tài),準(zhǔn)備畫(huà)右邊從上往下數(shù)的第1根胡子
調(diào)整畫(huà)筆粗細(xì)到3
落下畫(huà)筆
畫(huà)筆黑色(顏色值由取色吸管吸色測(cè)量得出)
左轉(zhuǎn)10度
繪制步長(zhǎng)80的線條
————————————————————————————————
抬起畫(huà)筆
移動(dòng)至坐標(biāo)(0,114)并恢復(fù)初始狀態(tài),準(zhǔn)備畫(huà)右邊從上往下數(shù)的第2根胡子
調(diào)整畫(huà)筆粗細(xì)到3
落下畫(huà)筆
畫(huà)筆黑色(顏色值由取色吸管吸色測(cè)量得出)
左轉(zhuǎn)6度
繪制步長(zhǎng)80的線條
————————————————————————————————
抬起畫(huà)筆
移動(dòng)至坐標(biāo)(0,104)并恢復(fù)初始狀態(tài),準(zhǔn)備畫(huà)右邊從上往下數(shù)的第3根胡子
調(diào)整畫(huà)筆粗細(xì)到3
落下畫(huà)筆
畫(huà)筆黑色(顏色值由取色吸管吸色測(cè)量得出)
左轉(zhuǎn)0度
繪制步長(zhǎng)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)
第十二步:左邊胡子
抬起畫(huà)筆
移動(dòng)至坐標(biāo)(0,124)并恢復(fù)初始狀態(tài),準(zhǔn)備畫(huà)左邊從上往下數(shù)的第1根胡子
調(diào)整畫(huà)筆粗細(xì)到3
落下畫(huà)筆
畫(huà)筆黑色(顏色值由取色吸管吸色測(cè)量得出)
左轉(zhuǎn)170度
繪制步長(zhǎng)80的線條
————————————————————————————————
抬起畫(huà)筆
移動(dòng)至坐標(biāo)(0,114)并恢復(fù)初始狀態(tài),準(zhǔn)備畫(huà)左邊從上往下數(shù)的第2根胡子
調(diào)整畫(huà)筆粗細(xì)到3
落下畫(huà)筆
畫(huà)筆黑色(顏色值由取色吸管吸色測(cè)量得出)
左轉(zhuǎn)174度
繪制步長(zhǎng)80的線條
————————————————————————————————
抬起畫(huà)筆
移動(dòng)至坐標(biāo)(0,104)并恢復(fù)初始狀態(tài),準(zhǔn)備畫(huà)左邊從上往下數(shù)的第3根胡子
調(diào)整畫(huà)筆粗細(xì)到3
落下畫(huà)筆
畫(huà)筆黑色(顏色值由取色吸管吸色測(cè)量得出)
左轉(zhuǎn)180度
繪制步長(zhǎng)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)
第十三步:嘴巴
抬起畫(huà)筆
移動(dòng)至坐標(biāo)(-70,70),準(zhǔn)備畫(huà)下邊沿圓弧
調(diào)整畫(huà)筆粗細(xì)到6
落下畫(huà)筆
畫(huà)筆黑色,填充紅色(顏色值由取色吸管吸色測(cè)量得出)
恢復(fù)畫(huà)筆初始方向并右轉(zhuǎn)60度
繪制半徑80,角度40的圓弧
繪制半徑80,角度80的圓弧
————————————————————————————————
抬起畫(huà)筆
恢復(fù)初始
移動(dòng)至坐標(biāo)(-80,70),準(zhǔn)備畫(huà)上邊沿橫線
落下畫(huà)筆
繪制步長(zhǎng)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)
第十四步:舌頭
抬起畫(huà)筆
恢復(fù)初始
移動(dòng)至坐標(biāo)(-50,50),準(zhǔn)備畫(huà)舌頭
調(diào)整畫(huà)筆粗細(xì)到1
落下畫(huà)筆
畫(huà)筆黑色,填充土黃色(顏色值由取色吸管吸色測(cè)量得出)
恢復(fù)畫(huà)筆初始方向并左轉(zhuǎn)40度
繪制半徑-40,角度40的圓弧
繪制半徑-40,角度40的圓弧
恢復(fù)畫(huà)筆初始方向并左轉(zhuǎn)40度
繪制半徑-40,角度40的圓弧
繪制半徑-40,角度40的圓弧
恢復(fù)畫(huà)筆初始方向并左轉(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)帶/紅色圍巾
抬起畫(huà)筆
移動(dòng)至坐標(biāo)(-70,12),準(zhǔn)備畫(huà)紅色圍巾
調(diào)整畫(huà)筆粗細(xì)到14
落下畫(huà)筆
畫(huà)筆紅色(顏色值由取色吸管吸色測(cè)量得出)
恢復(fù)畫(huà)筆初始方向并右轉(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)
第十六步:鈴鐺
抬起畫(huà)筆
移動(dòng)至坐標(biāo)(0,-46),準(zhǔn)備畫(huà)鈴鐺
調(diào)整畫(huà)筆粗細(xì)到3
落下畫(huà)筆
畫(huà)筆黑色,填充黃色(顏色值由取色吸管吸色測(cè)量得出)
繪制一個(gè)半徑25的圓
————————————————————————————————
抬起畫(huà)筆
移動(dòng)至坐標(biāo)(-5,-40),準(zhǔn)備畫(huà)鈴鐺細(xì)節(jié)部分
調(diào)整畫(huà)筆粗細(xì)到2
畫(huà)筆黑色,填充黃綠色(顏色值由取色吸管吸色測(cè)量得出)
繪制一個(gè)半徑5的圓
調(diào)整畫(huà)筆粗細(xì)到3
右轉(zhuǎn)115度
繪制步長(zhǎng)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é)束后停留在繪制頁(yè)面
t.done()
到此這篇關(guān)于Python實(shí)戰(zhàn)之畫(huà)哆啦A夢(mèng)(超詳細(xì)步驟)的文章就介紹到這了,更多相關(guān)Python畫(huà)哆啦A夢(mèng)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 使用Python對(duì)Syslog信息進(jìn)行分析并繪圖的實(shí)現(xiàn)
- 用Python的繪圖庫(kù)(matplotlib)繪制小波能量譜
- python matplotlib繪圖實(shí)現(xiàn)刪除重復(fù)冗余圖例的操作
- python 繪圖模塊matplotlib的使用簡(jiǎn)介
- python之 matplotlib和pandas繪圖教程
- python繪圖模塊之利用turtle畫(huà)圖
- python繪圖pyecharts+pandas的使用詳解
- Python下使用Trackbar實(shí)現(xiàn)繪圖板
- Python數(shù)據(jù)可視化常用4大繪圖庫(kù)原理詳解
- Python三維繪圖之Matplotlib庫(kù)的使用方法
- Python Matplotlib繪圖基礎(chǔ)知識(shí)代碼解析
- Python繪圖之二維圖與三維圖詳解
- Python繪圖之柱形圖繪制詳解
- Python實(shí)現(xiàn)手繪圖效果實(shí)例分享
相關(guān)文章
Python中列表、字典、元組、集合數(shù)據(jù)結(jié)構(gòu)整理
這篇文章主要介紹了Python中列表、字典、元組、集合數(shù)據(jù)結(jié)構(gòu)整理,較為詳細(xì)的分析了這幾類數(shù)據(jù)結(jié)構(gòu)的具體用法及相關(guān)技巧,需要的朋友可以參考下2014-11-11如何打包Python Web項(xiàng)目實(shí)現(xiàn)免安裝一鍵啟動(dòng)的方法
這篇文章主要介紹了如何打包Python Web項(xiàng)目,實(shí)現(xiàn)免安裝一鍵啟動(dòng),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05解決pyinstaller打包發(fā)布后的exe文件打開(kāi)控制臺(tái)閃退的問(wèn)題
今天小編就為大家分享一篇解決pyinstaller打包發(fā)布后的exe文件打開(kāi)控制臺(tái)閃退的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06詳解pandas刪除缺失數(shù)據(jù)(pd.dropna()方法)
這篇文章主要介紹了pandas刪除缺失數(shù)據(jù)(pd.dropna()方法),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06python 設(shè)置xlabel,ylabel 坐標(biāo)軸字體大小,字體類型
這篇文章主要介紹了python 設(shè)置xlabel,ylabel 坐標(biāo)軸字體大小,字體類型,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07使用Python批量刪除MySQL數(shù)據(jù)庫(kù)的全部外鍵
這篇文章主要為大家詳細(xì)介紹了如何使用Python批量刪除MySQL數(shù)據(jù)庫(kù)的全部外鍵,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-04-04python光學(xué)仿真PyQt5基礎(chǔ)框架教程
這篇文章主要為大家介紹了python光學(xué)仿真之PyQt5基礎(chǔ)框架教程,文中含有詳細(xì)實(shí)現(xiàn)示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-10-10Pytorch卷積神經(jīng)網(wǎng)絡(luò)resent網(wǎng)絡(luò)實(shí)踐
這篇文章主要為大家介紹了Pytorch卷積神經(jīng)網(wǎng)絡(luò)resent網(wǎng)絡(luò)實(shí)踐,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05