教你使用Python畫圣誕樹做浪漫的程序員
1.turtle庫
turtle庫是Python語言中一個很流行的繪制圖像的函數(shù)庫,想象一個小烏龜,在一個橫軸為x、縱軸為y的坐標(biāo)系原點,(0,0)位置開始,它根據(jù)一組函數(shù)指令的控制,在這個平面坐標(biāo)系中移動,從而在它爬行的路徑上繪制了圖形。
2.python函數(shù)的定義規(guī)則
- 以 def 開頭,后接定義函數(shù)的名稱和圓括號(),以冒號結(jié)尾
- 圓括號()可為空,也可以傳入?yún)?shù)
- 定義函數(shù)的內(nèi)容,與def有縮進(jìn)關(guān)系
- 調(diào)用自定義的函數(shù)的基本格式為:定義函數(shù)的名稱();若圓括號()為空,調(diào)用時,也為空,若若圓括號()不為空,調(diào)用時需傳入?yún)?shù)
- return [表達(dá)式] 結(jié)束函數(shù),選擇性地返回一個值給調(diào)用方。不帶表達(dá)式的return相當(dāng)于返回 None。
3.引入庫
import turtle as t from turtle import * import random as r import time
4.定義畫彩燈函數(shù)
#定義畫彩燈的函數(shù) def drawlight(): if r.randint(0,30) == 0: #randint用來生成隨機(jī)數(shù) color('tomato') #顏色() circle(6) #根據(jù)半徑radius繪制extent角度的弧形 elif r.randint(0,30) == 1: color('orange') #顏色() circle(3) else: linewidth = 5 #線型 color('dark green') #顏色
5.定義畫圣誕樹的函數(shù)
#定義畫圣誕樹的函數(shù) def tree(d,s): #定義函數(shù) 樹 if d <= 0: return #返回函數(shù)的返回值 forward(s) #向前 tree(d-1, s * .8) right(120) #方向 向右 tree(d-3, s * .5) drawlight() right(120) tree(d-3, s * .5) right(120) backward(s) #向后
6.定義樹下面小裝飾的函數(shù)
#定義樹下面小裝飾的函數(shù) def xzs(): for i in range(200): #范圍 a = 200-400* r.random() # random模塊用于生成隨機(jī)數(shù) b = 10 -20* r.random() up() forward(b) #向前 left(90) #左邊 forward(a) down() #向下 if r.randint(0,1) == 0: color('tomato') else: color('wheat') circle(2) #圓 up() backward(a) right(90) backward(b)
7.定義一個畫雪花的函數(shù)
#定義一個畫雪花的函數(shù) def drawsnow(): t.hideturtle() #這個方法是用來使Turtle隱身的。 t.pensize(2) #pensize(數(shù)字)可以設(shè)置畫筆的寬度 for i in range(200): t.pencolor("white") t.penup() t.setx(r.randint(-350,350)) #將當(dāng)前x軸移動到指定位置 t.sety(r.randint(-100,350)) #將當(dāng)前y軸移動到指定位置 t.pendown() #放下畫筆 dens = 6 snowsize = r.randint(1,10) #生成隨機(jī)數(shù) for j in range(dens): t.forward(int(snowsize)) t.backward(int(snowsize)) t.right(int(360/dens))
8.畫五角星
#畫五角星 for i in range(5): forward(n/5) right(144) forward(n/5) left(72) end_fill() right(126) color("dark green") backward(n * 4.8)
9.寫文字
#寫文字 t.color("dark red", "red") t.write("Merry Christmas", align="center", font=("Comic Sans MS", 40, "bold")) #寫 "Merry Christmas" 使成一條直線 居中 字體 似手寫的字體 40 粗體
10.全部源代碼
import turtle as t from turtle import * import random as r import time #定義幾個函數(shù)先 #定義畫彩燈的函數(shù) def drawlight(): if r.randint(0,30) == 0: color('tomato') circle(6) elif r.randint(0,30) == 1: color('orange') circle(3) else: linewidth = 5 color('dark green') #定義畫圣誕樹的函數(shù) def tree(d,s): if d <= 0: return forward(s) tree(d-1, s * .8) right(120) tree(d-3, s * .5) drawlight() right(120) tree(d-3, s * .5) right(120) backward(s) #定義樹下面小裝飾的函數(shù) def xzs(): for i in range(200): a = 200-400* r.random() b = 10 -20* r.random() up() forward(b) left(90) forward(a) down() if r.randint(0,1) == 0: color('tomato') else: color('wheat') circle(2) up() backward(a) right(90) backward(b) #定義一個畫雪花的函數(shù) def drawsnow(): t.hideturtle() t.pensize(2) for i in range(200): t.pencolor("white") t.penup() t.setx(r.randint(-350,350)) t.sety(r.randint(-100,350)) t.pendown() dens = 6 snowsize = r.randint(1,10) for j in range(dens): t.forward(int(snowsize)) t.backward(int(snowsize)) t.right(int(360/dens)) n=100.0 t.pensize(10) speed("fastest") t.screensize(800,600, "black") left(90) forward(3 * n) color("orange", "yellow") begin_fill() left(126) #畫五角星 for i in range(5): forward(n/5) right(144) forward(n/5) left(72) end_fill() right(126) color("dark green") backward(n * 4.8) #調(diào)用畫樹的函數(shù) tree(15 , n) backward(n/2) xzs() #寫文字 t.color("dark red", "red") t.write("Merry Christmas", align="center", font=("Comic Sans MS", 40, "bold")) # 調(diào)用雪花函數(shù) drawsnow() t.done() #收筆
到此這篇關(guān)于教你使用Python畫圣誕樹做浪漫的程序員的文章就介紹到這了,更多相關(guān)Python畫圣誕樹內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python使用socketServer包搭建簡易服務(wù)器過程詳解
這篇文章主要介紹了Python使用socketServer包搭建簡易服務(wù)器過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-06-06pytest使用@pytest.mark.parametrize()實現(xiàn)參數(shù)化的示例代碼
這篇文章主要介紹了pytest使用@pytest.mark.parametrize()實現(xiàn)參數(shù)化,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-07-07Python常見MongoDB數(shù)據(jù)庫操作實例總結(jié)
這篇文章主要介紹了Python常見MongoDB數(shù)據(jù)庫操作,結(jié)合實例形式詳細(xì)總結(jié)了Python針對MongoDB數(shù)據(jù)庫相關(guān)pymongo庫安裝以及MongoDB數(shù)據(jù)庫的增刪改查等相關(guān)操作技巧與注意事項,需要的朋友可以參考下2018-07-07python數(shù)字圖像處理之圖像簡單濾波實現(xiàn)
這篇文章主要為大家介紹了python數(shù)字圖像處理之圖像簡單濾波實現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06Python 字符串操作實現(xiàn)代碼(截取/替換/查找/分割)
這篇文章主要介紹了Python 字符串截取/替換/查找/分割等實現(xiàn)方法,需要的朋友可以參考下2013-06-06基于Python實現(xiàn)音樂播放器的實現(xiàn)示例代碼
這篇文章主要介紹了如何利用Python編寫簡易的音樂播放器,文中的示例代碼講解詳細(xì),具有一的參考價值,需要的小伙伴可以參考一下2022-04-04