教你使用Python畫圣誕樹做浪漫的程序員

1.turtle庫
turtle庫是Python語言中一個(gè)很流行的繪制圖像的函數(shù)庫,想象一個(gè)小烏龜,在一個(gè)橫軸為x、縱軸為y的坐標(biāo)系原點(diǎn),(0,0)位置開始,它根據(jù)一組函數(shù)指令的控制,在這個(gè)平面坐標(biāo)系中移動(dòng),從而在它爬行的路徑上繪制了圖形。
2.python函數(shù)的定義規(guī)則
- 以 def 開頭,后接定義函數(shù)的名稱和圓括號(hào)(),以冒號(hào)結(jié)尾
- 圓括號(hào)()可為空,也可以傳入?yún)?shù)
- 定義函數(shù)的內(nèi)容,與def有縮進(jìn)關(guān)系
- 調(diào)用自定義的函數(shù)的基本格式為:定義函數(shù)的名稱();若圓括號(hào)()為空,調(diào)用時(shí),也為空,若若圓括號(hào)()不為空,調(diào)用時(shí)需傳入?yún)?shù)
- return [表達(dá)式] 結(jié)束函數(shù),選擇性地返回一個(gè)值給調(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.定義一個(gè)畫雪花的函數(shù)
#定義一個(gè)畫雪花的函數(shù)
def drawsnow():
t.hideturtle() #這個(gè)方法是用來使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軸移動(dòng)到指定位置
t.sety(r.randint(-100,350)) #將當(dāng)前y軸移動(dòng)到指定位置
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
#定義幾個(gè)函數(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)
#定義一個(gè)畫雪花的函數(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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python 安裝教程之Pycharm安裝及配置字體主題,換行,自動(dòng)更新
這篇文章主要介紹了python 安裝教程之Pycharm安裝及配置字體主題,換行,自動(dòng)更新,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03
基于Python實(shí)現(xiàn)虛假評(píng)論檢測(cè)可視化系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了如何基于Python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的虛假評(píng)論檢測(cè)可視化系統(tǒng),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2023-04-04
python3爬蟲中多線程的優(yōu)勢(shì)總結(jié)
在本篇文章里小編給大家分享了一篇關(guān)于python3爬蟲中多線程的優(yōu)勢(shì)總結(jié)內(nèi)容,需要的朋友們可以參考學(xué)習(xí)下。2020-11-11
基于python requests selenium爬取excel vba過程解析
這篇文章主要介紹了基于python requests selenium爬取excel vba過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08
Python學(xué)習(xí)筆記之解析json的方法分析
這篇文章主要介紹了Python解析json的方法,結(jié)合實(shí)例形式分析了常見的Python解析與轉(zhuǎn)換json格式數(shù)據(jù)相關(guān)操作技巧,需要的朋友可以參考下2017-04-04

