python?turtle庫畫圣誕樹詳細代碼教程
首先我們的目標是這樣子的:
那么他有什么成分呢?有圣誕樹的本體、大小蝴蝶結(jié)、星星、圣誕帽和襪子。
首先我們來畫圣誕樹的本體。
1. 圣誕樹的本體
圣誕樹本體是這樣子的:
代碼:
class TreeBackBone(): def __init__(self): pencolor("pink") pensize(10) self.layer1() self.layer2() self.layer3() self.layer4() self.trunk() def layer1(self): penup() hideturtle() goto(0, 150) showturtle() pendown() shape(name="classic") seth(-120) for i in range(10): fd(12) right(2) penup() goto(0, 150) seth(-60) pendown() for i in range(10): fd(12) left(2) seth(-150) penup() fd(10) pendown() for i in range(5): fd(10) right(15) seth(-150) penup() fd(8) pendown() for i in range(5): fd(10) right(15) seth(-155) penup() fd(5) pendown() for i in range(5): fd(7) right(15) def layer2(self): penup() goto(-55, 34) pendown() seth(-120) for i in range(10): fd(8) right(5) penup() goto(50, 35) seth(-60) pendown() for i in range(10): fd(8) left(5) seth(-120) penup() fd(10) seth(-145) pendown() for i in range(5): fd(10) right(15) penup() fd(10) seth(-145) pendown() for i in range(5): fd(12) right(15) penup() fd(8) seth(-145) pendown() for i in range(5): fd(10) right(15) penup() seth(-155) fd(8) pendown() for i in range(5): fd(11) right(15) def layer3(self): penup() goto(-100, -40) seth(-120) pendown() for i in range(10): fd(6) right(3) penup() goto(80, -39) seth(-50) pendown() for i in range(10): fd(6) left(3) seth(-155) penup() fd(10) pendown() for i in range(5): fd(8) right(10) penup() fd(8) seth(-145) pendown() for i in range(7): fd(8) right(10) penup() fd(8) seth(-145) pendown() for i in range(7): fd(7) right(10) penup() fd(8) seth(-145) pendown() for i in range(7): fd(7) right(10) penup() fd(8) seth(-140) pendown() for i in range(7): fd(6) right(10) def layer4(self): penup() goto(-120, -95) seth(-130) pendown() for i in range(7): fd(10) right(5) penup() goto(100, -95) seth(-50) pendown() for i in range(7): fd(10) left(5) penup() seth(-120) fd(10) seth(-155) pendown() for i in range(6): fd(8) right(10) penup() seth(-160) fd(10) seth(-155) pendown() for i in range(6): fd(8) right(10) penup() seth(-160) fd(10) seth(-155) pendown() for i in range(6): fd(8) right(10) penup() seth(-160) fd(10) seth(-160) pendown() for i in range(6): fd(8) right(10) penup() seth(-160) fd(10) seth(-160) pendown() for i in range(6): fd(8) right(10) penup() seth(-160) fd(10) seth(-165) pendown() for i in range(5): fd(10) right(11) def trunk(self): penup() goto(-70, -165) seth(-85) pendown() for i in range(3): fd(5) left(3) penup() goto(70, -165) seth(-95) pendown() for i in range(3): fd(5) right(3) seth(-170) penup() fd(10) pendown() pendown() for i in range(10): fd(12) right(2) penup() goto(70, -165) pendown() seth(-90) pensize(8) pencolor("#de8891") circle(-20, 90) penup() goto(30, -185) pendown() seth(-180) pensize(8) pencolor("#de8891") fd(40) penup() goto(-5, -170) pendown() seth(-180) pensize(8) pencolor("#de8891") fd(35) right_up(-70, -150, 160) right_up(100, -150, 160) right_down(110, -110, 50) right_up(160, -140, 150) clockwise(80, -120, 180) right_up(70, -85, 165) right_up(-40, -85, 165) right_down(90, -50, 50) right_up(130, -80, 150) pencolor("pink") clockwise(-40, -60, 180) pencolor('#de8891') clockwise(80, -30, 180) pencolor("pink") clockwise(40, 10, 180) pencolor("#de8891") right_up(-60, 30, 120) right_up(-20, -20, 150) right_down(45, 40, 60) right_up(-30, 40, 170) right_up(-30, 110, 115) right_down(40, 90, 60) right_up(80, 50, 160) pencolor("#de8891")
2. 蝴蝶結(jié)
接下來讓我們繪制作為裝飾的小蝴蝶結(jié),每個蝴蝶結(jié)長這個亞子~
代碼:
def basebowknot(x, y): penup() goto(x, y) seth(80) pendown() pensize(2) circle(5) seth(10) fd(15) seth(120) fd(20) seth(240) fd(20) seth(180) fd(20) seth(-60) fd(20) seth(50) fd(20) seth(-40) fd(30) seth(-130) fd(5) seth(135) fd(30) seth(-60) fd(30) seth(-150) fd(6) seth(110) fd(30)
3. 星星
接下來我們繪制閃閃發(fā)光的小星星,長這個亞子~
代碼:
def star(x, y, size): pensize(2) pencolor("black") penup() goto(x, y) pendown() begin_fill() fillcolor("yellow") for i in range(5): left(72) fd(size) right(144) fd(size) end_fill()
4. 圣誕帽
接下來我們繪制灰常具有節(jié)日氣息的圣誕帽,長這個亞子~
代碼:
def christmashats(self): seth(0) pink_anticlockwise(35, 145, 100) pink_anticlockwise(-7, 145, 110) pencolor("red") pensize(7) penup() goto(-35, 135) pendown() seth(-20) pensize(2) penup() goto(-30, -120) pencolor("black") pendown() fillcolor("red") fd(30) circle(4, 180) fd(30) circle(4, 180) penup() goto(-25, -115) seth(75) pendown() begin_fill() for i in range(5): fd(6) right(20) seth(-10) for i in range(5): fd(8) right(15) seth(145) for i in range(5): fd(5) left(2) seth(90) for i in range(5): fd(1) left(2) seth(-90) for i in range(4): fd(4) right(6) seth(161) fd(30) end_fill() pensize(1) pencolor("black")
5. 圣誕襪
最后是用來裝圣誕老人禮物的圣誕襪喲~
代碼:
def socks(self): seth(-20) pensize(2) penup() goto(-20, 80) pencolor("black") pendown() fillcolor("red") fd(25) circle(4, 180) fd(25) circle(4, 180) penup() goto(-15, 80) pendown() begin_fill() fillcolor("red") seth(-120) fd(20) seth(150) fd(5) circle(7, 180) fd(15) circle(5, 90) fd(30) seth(160) fd(18) end_fill()
至此,我們的圣誕樹就全部畫完啦!
6. 最后奉上完整代碼
from turtle import * import time class TreeBackBone(): def __init__(self): pencolor("Green") pensize(10) self.layer1() self.layer2() self.layer3() self.layer4() self.trunk() def layer1(self): penup() hideturtle() goto(0, 150) showturtle() pendown() shape(name="classic") seth(-120) for i in range(10): fd(12) right(2) penup() goto(0, 150) seth(-60) pendown() for i in range(10): fd(12) left(2) seth(-150) penup() fd(10) pendown() for i in range(5): fd(10) right(15) seth(-150) penup() fd(8) pendown() for i in range(5): fd(10) right(15) seth(-155) penup() fd(5) pendown() for i in range(5): fd(7) right(15) def layer2(self): penup() goto(-55, 34) pendown() seth(-120) for i in range(10): fd(8) right(5) penup() goto(50, 35) seth(-60) pendown() for i in range(10): fd(8) left(5) seth(-120) penup() fd(10) seth(-145) pendown() for i in range(5): fd(10) right(15) penup() fd(10) seth(-145) pendown() for i in range(5): fd(12) right(15) penup() fd(8) seth(-145) pendown() for i in range(5): fd(10) right(15) penup() seth(-155) fd(8) pendown() for i in range(5): fd(11) right(15) def layer3(self): penup() goto(-100, -40) seth(-120) pendown() for i in range(10): fd(6) right(3) penup() goto(80, -39) seth(-50) pendown() for i in range(10): fd(6) left(3) seth(-155) penup() fd(10) pendown() for i in range(5): fd(8) right(10) penup() fd(8) seth(-145) pendown() for i in range(7): fd(8) right(10) penup() fd(8) seth(-145) pendown() for i in range(7): fd(7) right(10) penup() fd(8) seth(-145) pendown() for i in range(7): fd(7) right(10) penup() fd(8) seth(-140) pendown() for i in range(7): fd(6) right(10) def layer4(self): penup() goto(-120, -95) seth(-130) pendown() for i in range(7): fd(10) right(5) penup() goto(100, -95) seth(-50) pendown() for i in range(7): fd(10) left(5) penup() seth(-120) fd(10) seth(-155) pendown() for i in range(6): fd(8) right(10) penup() seth(-160) fd(10) seth(-155) pendown() for i in range(6): fd(8) right(10) penup() seth(-160) fd(10) seth(-155) pendown() for i in range(6): fd(8) right(10) penup() seth(-160) fd(10) seth(-160) pendown() for i in range(6): fd(8) right(10) penup() seth(-160) fd(10) seth(-160) pendown() for i in range(6): fd(8) right(10) penup() seth(-160) fd(10) seth(-165) pendown() for i in range(5): fd(10) right(11) def trunk(self): penup() goto(-70, -165) seth(-85) pendown() for i in range(3): fd(5) left(3) penup() goto(70, -165) seth(-95) pendown() for i in range(3): fd(5) right(3) seth(-170) penup() fd(10) pendown() pendown() for i in range(10): fd(12) right(2) penup() goto(70, -165) pendown() seth(-90) pensize(8) pencolor("DarkSeaGreen") circle(-20, 90) penup() goto(30, -185) pendown() seth(-180) pensize(8) pencolor("DarkSeaGreen") fd(40) penup() goto(-5, -170) pendown() seth(-180) pensize(8) pencolor("DarkSeaGreen") fd(35) right_up(-70, -150, 160) right_up(100, -150, 160) right_down(110, -110, 50) right_up(160, -140, 150) clockwise(80, -120, 180) right_up(70, -85, 165) right_up(-40, -85, 165) right_down(90, -50, 50) right_up(130, -80, 150) pencolor("Green") clockwise(-40, -60, 180) pencolor('DarkSeaGreen') clockwise(80, -30, 180) pencolor("Green") clockwise(40, 10, 180) pencolor("DarkSeaGreen") right_up(-60, 30, 120) right_up(-20, -20, 150) right_down(45, 40, 60) right_up(-30, 40, 170) right_up(-30, 110, 115) right_down(40, 90, 60) right_up(80, 50, 160) pencolor("DarkSeaGreen") class ChristmasTree(): def __init__(self): setup(500, 500, startx=None, starty=None) speed(0) TreeBackBone() pencolor("#de8891") self.small_bowknots() self.big_bowknots() self.christmashats() self.stars() self.socks() penup() seth(0) goto(100, -230) pendown() write("Merry Christmas ", align="center", font=("Comic Sans MS", 24, "bold")) done() def small_bowknots(self): seth(0) unit(40, -160) basebowknot(-80, -120) red_anticlockwise(-67, -115, 120) red_anticlockwise(-86, -123, 150) basebowknot(40, -50) red_anticlockwise(52, -45, 130) red_anticlockwise(34, -55, 160) seth(0) unit(-20, -60) red_anticlockwise(-4, -60, 100) red_anticlockwise(-20, -60, 120) basebowknot(-30, 20) red_anticlockwise(-15, 25, 130) red_anticlockwise(-40, 20, 180) unit(30, 70) red_anticlockwise(45, 70, 100) red_anticlockwise(30, 70, 120) def big_bowknots(self): pencolor("red") pensize(5) penup() seth(0) goto(0, 150) pendown() circle(10) seth(-15) fd(40) seth(90) fd(40) seth(200) fd(40) seth(160) fd(40) seth(-90) fd(40) seth(15) fd(40) seth(-70) pencolor("red") pensize(4) fd(40) seth(-180) fd(10) seth(100) fd(40) seth(-100) fd(40) seth(-180) fd(10) seth(70) fd(40) penup() seth(0) goto(0, 130) pencolor("pink") pendown() def christmashats(self): seth(0) pink_anticlockwise(35, 145, 100) pink_anticlockwise(-7, 145, 110) pencolor("red") pensize(7) penup() goto(-35, 135) pendown() seth(-20) pensize(2) penup() goto(-30, -120) pencolor("black") pendown() fillcolor("red") fd(30) circle(4, 180) fd(30) circle(4, 180) penup() goto(-25, -115) seth(75) pendown() begin_fill() for i in range(5): fd(6) right(20) seth(-10) for i in range(5): fd(8) right(15) seth(145) for i in range(5): fd(5) left(2) seth(90) for i in range(5): fd(1) left(2) seth(-90) for i in range(4): fd(4) right(6) seth(161) fd(30) end_fill() pensize(1) pencolor("black") def stars(self): seth(-15) star(-120, -70, 10) seth(10) star(100, -20, 10) seth(-10) star(10, 40, 10) seth(30) star(-80, 60, 10) star(100, -150, 10) star(-140, -150, 10) star(20, 120, 10) def socks(self): seth(-20) pensize(2) penup() goto(-20, 80) pencolor("black") pendown() fillcolor("red") fd(25) circle(4, 180) fd(25) circle(4, 180) penup() goto(-15, 80) pendown() begin_fill() fillcolor("red") seth(-120) fd(20) seth(150) fd(5) circle(7, 180) fd(15) circle(5, 90) fd(30) seth(160) fd(18) end_fill() def basebowknot(x, y): penup() goto(x, y) seth(80) pendown() pensize(2) circle(5) seth(10) fd(15) seth(120) fd(20) seth(240) fd(20) seth(180) fd(20) seth(-60) fd(20) seth(50) fd(20) seth(-40) fd(30) seth(-130) fd(5) seth(135) fd(30) seth(-60) fd(30) seth(-150) fd(6) seth(110) fd(30) def right_up(x, y, z): penup() goto(x, y) seth(-z) pendown() for angel in range(5): fd(10) right(10) def right_down(x, y, z): penup() goto(x, y) seth(-z) pendown() for angel in range(5): fd(10) left(10) def clockwise(x, y, z): penup() goto(x, y) seth(-z) pendown() for angel in range(5): fd(6) right(10) seth(-150) fd(20) def unit(x, y): penup() goto(x, y) pendown() pensize(2) circle(5) seth(-10) fd(15) seth(90) fd(15) seth(200) fd(15) seth(160) fd(15) seth(-90) fd(15) seth(10) fd(15) seth(-60) fd(20) seth(-180) fd(5) seth(110) fd(20) seth(-90) fd(20) seth(-180) fd(6) seth(70) fd(15) hideturtle() def red_anticlockwise(x, y, z): penup() goto(x, y) pendown() seth(z) for po in range(5): fd(4) left(36) def pink_anticlockwise(x, y, z): penup() goto(x, y) pencolor("red") pendown() seth(z) for po in range(10): fd(4) left(18) def star(x, y, size): pensize(2) pencolor("black") penup() goto(x, y) pendown() begin_fill() fillcolor("yellow") for i in range(5): left(72) fd(size) right(144) fd(size) end_fill() if __name__ == '__main__': ChristmasTree()
快拿去送給對象作為圣誕節(jié)的額外驚喜吧~這是屬于我們程序員的浪漫。
到此這篇關(guān)于python turtle庫畫圣誕樹詳細代碼教程的文章就介紹到這了,更多相關(guān)python turtle庫畫圣誕樹內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于Python實現(xiàn)一個簡易的數(shù)據(jù)管理系統(tǒng)
為了方便的實現(xiàn)記錄數(shù)據(jù)、修改數(shù)據(jù)沒有精力去做一個完整的系統(tǒng)去管理數(shù)據(jù)。因此,在python的控制臺直接實現(xiàn)一個簡易的數(shù)據(jù)管理系統(tǒng),包括數(shù)據(jù)的增刪改查等等。感興趣的可以跟隨小編一起學習一下2021-12-12python3調(diào)用windows dos命令的例子
今天小編就為大家分享一篇python3調(diào)用windows dos命令的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-08-08基于python SMTP實現(xiàn)自動發(fā)送郵件教程解析
這篇文章主要介紹了基于python實現(xiàn)自動發(fā)送郵件教程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-06-06RuntimeError:CUDA?out?of?memory多種場景下的解決方案
若遇到RuntimeError:?CUDA?out?of?memory錯誤,通常意味著GPU內(nèi)存不足以處理當前的計算需求,本文就來介紹一下多種場景下的解決方案,具有一定的參考價值,感興趣的可以了解一下2024-02-02Python 統(tǒng)計數(shù)據(jù)集標簽的類別及數(shù)目操作
這篇文章主要介紹了Python 統(tǒng)計數(shù)據(jù)集標簽的類別及數(shù)目操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-05-05