教你使用Python畫圣誕樹做浪漫的程序員
更新時間:2022年12月13日 10:28:50 作者:網絡豆
這不是圣誕節(jié)快到了,還不用Python繪制個圣誕樹和煙花讓女朋友開心開心,也算是親手做的,稍稍花了點心思,學會了趕緊畫給你的那個她吧

1.turtle庫
turtle庫是Python語言中一個很流行的繪制圖像的函數庫,想象一個小烏龜,在一個橫軸為x、縱軸為y的坐標系原點,(0,0)位置開始,它根據一組函數指令的控制,在這個平面坐標系中移動,從而在它爬行的路徑上繪制了圖形。
2.python函數的定義規(guī)則
- 以 def 開頭,后接定義函數的名稱和圓括號(),以冒號結尾
- 圓括號()可為空,也可以傳入參數
- 定義函數的內容,與def有縮進關系
- 調用自定義的函數的基本格式為:定義函數的名稱();若圓括號()為空,調用時,也為空,若若圓括號()不為空,調用時需傳入參數
- return [表達式] 結束函數,選擇性地返回一個值給調用方。不帶表達式的return相當于返回 None。
3.引入庫
import turtle as t from turtle import * import random as r import time
4.定義畫彩燈函數
#定義畫彩燈的函數
def drawlight():
if r.randint(0,30) == 0: #randint用來生成隨機數
color('tomato') #顏色()
circle(6) #根據半徑radius繪制extent角度的弧形
elif r.randint(0,30) == 1:
color('orange') #顏色()
circle(3)
else:
linewidth = 5 #線型
color('dark green') #顏色5.定義畫圣誕樹的函數
#定義畫圣誕樹的函數
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) #向后 6.定義樹下面小裝飾的函數
#定義樹下面小裝飾的函數
def xzs():
for i in range(200): #范圍
a = 200-400* r.random() # 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)7.定義一個畫雪花的函數
#定義一個畫雪花的函數
def drawsnow():
t.hideturtle() #這個方法是用來使Turtle隱身的。
t.pensize(2) #pensize(數字)可以設置畫筆的寬度
for i in range(200):
t.pencolor("white")
t.penup()
t.setx(r.randint(-350,350)) #將當前x軸移動到指定位置
t.sety(r.randint(-100,350)) #將當前y軸移動到指定位置
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))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
#定義幾個函數先
#定義畫彩燈的函數
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')
#定義畫圣誕樹的函數
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)
#定義樹下面小裝飾的函數
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)
#定義一個畫雪花的函數
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)
#調用畫樹的函數
tree(15 , n)
backward(n/2)
xzs()
#寫文字
t.color("dark red", "red")
t.write("Merry Christmas", align="center", font=("Comic Sans MS", 40, "bold"))
# 調用雪花函數
drawsnow()
t.done() #收筆到此這篇關于教你使用Python畫圣誕樹做浪漫的程序員的文章就介紹到這了,更多相關Python畫圣誕樹內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python使用socketServer包搭建簡易服務器過程詳解
這篇文章主要介紹了Python使用socketServer包搭建簡易服務器過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-06-06
pytest使用@pytest.mark.parametrize()實現參數化的示例代碼
這篇文章主要介紹了pytest使用@pytest.mark.parametrize()實現參數化,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-07-07

