前言:
美酒一杯讓人醉,溫馨陪伴浪漫隨;雪花片片惹人愛,煩惱憂傷全不見;字里行間藏真情,文短情深送心愿:圣誕佳節(jié)快來到,祝大家永遠(yuǎn)開心幸福!
Hello大家好,我是Dream。 圣誕節(jié)馬上到了,一些朋友問我想送女朋友和男朋友們圣誕節(jié)禮物,但是也沒想到啥好點(diǎn)子,作為一名程序員,圣誕節(jié)我們就應(yīng)該送出專屬于我們程序員的浪漫。作為我的粉絲朋友們,我不允許大家還沒有專屬于自己的圣誕樹!于是我給大家準(zhǔn)備了兩款圣誕樹,快來看看有沒有你喜歡的吧~
一、背景故事
圣誕節(jié)是全家團(tuán)聚、共進(jìn)圣誕晚餐、互贈(zèng)禮品的時(shí)刻。圣誕樹是節(jié)日的必需之物,一般用小樅樹或者松樹,樹枝上掛滿裝飾品、禮物、彩燈,樹頂上要有一顆明亮的星,以指示道路。
雪花飄舞著祥和,鐘聲傳遞著喜悅,蘋果注滿了平安,糖果填滿了甜蜜,頌歌洋溢著快樂,短信充滿了我最真摯的祝福。圣誕節(jié),愿大家快樂悠然,幸福安康!
圣誕樹需求
馬上不就到圣誕節(jié)了嘛,我看到朋友圈里很多小伙伴再紛紛炫耀自己收到的專屬圣誕樹,也有小伙伴私信我,說還沒有自己的圣誕樹?。?!
作為我的粉絲朋友們,我不允許大家還沒有專屬于自己的圣誕樹!我要讓大家收到最特別最美麗的圣誕樹,于是我給大家準(zhǔn)備了兩款圣誕樹??:
HTML版動(dòng)態(tài)圣誕樹
+
Python版落葉+雪花+背景音樂+浪漫彈窗 五合一版圣誕樹! 話不多說,先看效果:
??????哎嘿嘿,是不是非常的nice呀!喜歡啊一款啊,我把源碼準(zhǔn)備好啦,大家自取就行了,快去給最愛的人送上圣誕祝福吧!
源碼分享
所有源碼均在此公眾號(hào)內(nèi):關(guān)注此公眾號(hào),回復(fù) 圣誕樹
獲取源碼,快點(diǎn)擊我吧:人生苦短我用Pythons
二、HTML版圣誕樹
代碼有些長,大家根據(jù)自己需要直接修改文字內(nèi)容就好,把文件后綴改為.html就可以直接運(yùn)行啦!
并且我在其中加入了輪番圖,你可以按照自己的需求寫上自己想對(duì)她說的話:
這里是程序代碼:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<title> 寶貝 圣誕節(jié)快樂!</title>
<meta charset="utf-8" >
<style>
body {
margin: 0;
background-image: url("http://all4desktop.com/data_images/1280%20x%20800/4227335-waiting-for-the-xmas.jpg");
background-color: #111;
background-position: 50% 50%;
background-size: cover;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
margin: 0;
}
其余代碼太長放到源碼里啦,大家需要自取
三、Python版圣誕樹
需要用到的模塊:
import turtle as t
import random
import pygame
import threading
import time
import tkinter as tk
這是我們要用到的一些基礎(chǔ)庫,沒有安裝的小伙伴們可以安裝一下,要求編譯器是Python3的環(huán)境?;A(chǔ)操作還不會(huì)的小伙伴看這里:??Python入門這些你必須要知道!
我用的是Pycharm,對(duì)Pycharm不懂的小伙伴look這個(gè):全網(wǎng)首發(fā),一篇文章帶你走進(jìn)pycharm的世界
1.基礎(chǔ)圣誕樹
畫主體樹的部分看似有些麻煩,但只要你把其中的幾個(gè)循環(huán)看明白了就行了,無非就是幾個(gè)函數(shù)重復(fù)控制畫筆移動(dòng)!
t.screensize(bg='black') # 定義背景顏色,可以自己換顏色
def loving_heart(r):
l = 2 * r
t.left(45)
t.forward(l)
t.circle(r, 180)
t.right(90)
t.circle(r, 180)
t.forward(l)
# 樹函數(shù)(遞歸)
def tree(d, s):
if d <= 0:
return
t.forward(s)
tree(d - 1, s * .8)
t.right(120)
tree(d - 3, s * .5)
t.right(120)
tree(d - 3, s * .5)
t.right(120)
t.backward(s) # 回退函數(shù)
# 畫愛心部分
t.penup()
t.goto(0, 200) # 設(shè)置起點(diǎn)位置
t.pendown()
t.pencolor('red') # 設(shè)置畫筆顏色
t.color('red')
t.begin_fill() # 對(duì)圖形進(jìn)行填充
loving_heart(20) # 執(zhí)行畫愛心函數(shù)
t.end_fill()
# 畫樹部分
n = 100
t.speed(0)
# t.Turtle().screen.delay(0)
t.right(225)
t.color("dark green")
t.backward(n * 4.8)
tree(15, n)
t.backward(n / 5)
2.落葉效果
在這里我使用了random函數(shù),通過判斷條件控制了兩種顏色,大家也可以加入更多的顏色進(jìn)行繪制落葉:
if random.randint(1, 2) == 1:
t.color('tomato')
else:
t.color('wheat')
也可以使其變成不同的形狀,也沒必要全是圓形,時(shí)間問題我就沒改,大家感興趣可以再改一下,也可以使落葉在圣誕樹上,不用全在圣誕樹下:t.circle(4)
# 繪制落葉
for i in range(200):
a = 200 - 400 * random.random()
b = 10 - 20 * random.random()
t.speed(0)
t.up()
t.forward(b)
t.left(90)
t.forward(a)
t.down()
if random.randint(1, 2) == 1:
t.color('tomato')
else:
t.color('wheat')
t.circle(4)
t.up()
t.backward(a)
t.right(90)
t.backward(b)
3.雪花特效
這里我做了很詳細(xì)的介紹,大家可以參考這個(gè)來具體看,還是很好看的:
# 繪制雪花
def drawsnow(): # 定義畫雪花的方法
t.speed(0)
t.ht() # 隱藏筆頭,ht=hideturtle
t.pensize(2) # 定義筆頭大小
for i in range(200): # 畫多少雪花
t.pencolor("white") # 定義畫筆顏色為白色,其實(shí)就是雪花為白色
t.pu() # 提筆,pu=penup
t.setx(random.randint(-350, 350)) # 定義x坐標(biāo),隨機(jī)從-350到350之間選擇
t.sety(random.randint(-100, 350)) # 定義y坐標(biāo),注意雪花一般在地上不會(huì)落下,所以不會(huì)從太小的縱座軸開始
t.pd() # 落筆,pd=pendown
dens = 6 # 雪花瓣數(shù)設(shè)為6
snowsize = random.randint(1, 10) # 定義雪花大小
for j in range(dens): # 就是6,那就是畫5次,也就是一個(gè)雪花五角星
# t.forward(int(snowsize)) #int()取整數(shù)
t.fd(int(snowsize))
t.backward(int(snowsize))
# t.bd(int(snowsize)) #注意沒有bd=backward,但有fd=forward,小bug
t.right(int(360 / dens)) # 轉(zhuǎn)動(dòng)角度
drawsnow()
4.背景音樂
這里使用Pygame模塊中的mixer
來控制音樂的播放,需要導(dǎo)入本地音樂路徑,然后就可以啦!這樣會(huì)使整個(gè)的繪制過程更加浪漫有趣!
file=r'薛之謙 - 遲遲.mp3' # 音樂的路徑
pygame.mixer.init() # 初始化
track = pygame.mixer.music.load(file) # 加載音樂文件
pygame.mixer.music.play() # 開始播放音樂
5.浪漫彈窗
這里使用了tkinter模塊
來進(jìn)行小彈窗的繪制,最后是用for循環(huán)來實(shí)現(xiàn)彈窗的重復(fù)性和隨機(jī)性,這也是我覺得最大的創(chuàng)新之處吧!驚喜重重,滿滿心意與浪漫,哈哈哈。
# 彈窗制作
def dow():
window = tk.Tk()
width = window.winfo_screenwidth()
height = window.winfo_screenheight()
a = random.randrange(0, width)
b = random.randrange(0, height)
window.title('圣誕節(jié)快樂')
window.geometry("200x50" + "+" + str(a) + "+" + str(b))
tk.Label(window,
text='圣誕節(jié)快樂!', # 標(biāo)簽的文字
bg='pink', # 背景顏色
font=('..', 17), # 字體和字體大小
width=18, height=2 # 標(biāo)簽長寬
).pack() # 固定窗口位置
window.mainloop()
threads = []
for i in range(100): # 需要的彈框數(shù)量
t = threading.Thread(target=dow)
threads.append(t)
time.sleep(0.01)
threads[i].start()
6.署名制作
最后我又簡(jiǎn)單的加上了自己的署名,算是對(duì)自己產(chǎn)權(quán)的一種保護(hù)吧。雖然沒啥用,你們也肯定會(huì)給我去掉,但我不管,這就是一種儀式感嗷!
# 寫下署名
t.color("red") # 填充顏色
t.up() # 抬筆
t.goto(170,-200)
t.down() # 落筆
t.write("Created:是Dream呀", font=("宋體", 18, "normal"))
t.ht()
# t.done()
t.hideturtle()
四、源碼分享
源碼來嘍:
所有源碼均在此公眾號(hào)內(nèi):關(guān)注此公眾號(hào),回復(fù) 圣誕樹
獲取源碼,快點(diǎn)擊我吧:人生苦短我用Pythons
五、??美好祝愿??
希望大家在圣誕節(jié)都可以和喜歡的人在一起,送上那棵專屬于她or他的圣誕樹!天天開心,好好生活,我一直都在喲~??????(有任何問題的話,歡迎評(píng)論區(qū)或者私信我嗷,我都會(huì)看的?。?/p>
?????? 好啦,這就是今天要分享給大家的全部內(nèi)容了,我們下期再見!
??????如果你喜歡的話,就不要吝惜你的一鍵三連了~文章來源:http://www.zghlxwxcb.cn/news/detail-787312.html
最后,有任何問題,歡迎關(guān)注下面的公眾號(hào),獲取第一時(shí)間消息、作者聯(lián)系方式及每周抽獎(jiǎng)等多重好禮! ↓↓↓文章來源地址http://www.zghlxwxcb.cn/news/detail-787312.html
到了這里,關(guān)于圣誕節(jié)怎么能缺少圣誕樹呢?Python+HTML打造專屬于你的圣誕樹的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!