
📢📢📢📣📣📣
🌻🌻🌻Hello,大家好我叫是Dream呀,一個有趣的Python博主,小白一枚,多多關照😜😜😜
🏅🏅🏅CSDN Python領域新星創作者,大二在讀,歡迎大家找我合作學習
💕入門須知:這片樂園從不缺乏天才,努力才是你的最終入場券!🚀🚀🚀
💓最后,愿我們都能在看不到的地方閃閃發光,一起加油進步🍺🍺🍺
🍉🍉🍉“一萬次悲傷,依然會有Dream,我一直在最溫暖的地方等你”,唱的就是我!哈哈哈~🌈🌈🌈
🌟🌟🌟???
前言:本來是打算停更一段時間的,因為最近期末復習很忙,自己也有許多私事要處理,心挺亂挺煩的,最主要的原因還是感覺自己的文章能被大家關注喜歡,自己挺榮幸的,粉絲也是達到了1W+,所以說我想停下來一段時間,好好審視一下自己,以后應該出一些什么樣的文章來分享給大家,重新再規劃一下學習路線,停更的這一段時間里,有很多小伙伴陸陸續續給我發私信,說想看什么內容,讓我出一期,我都一一答應了,但最近真的很亂很煩,但我保證寒假我一定會出的!
Python打造專屬于你的圣誕樹+落葉+雪花+背景音樂+浪漫彈窗 五合一版圣誕樹
- 一、背景故事
- 圣誕節風波??????
- 二、五合一版圣誕樹制作程序
- 需要用到的模塊:
- 1.基礎圣誕樹
- 2.落葉效果
- 3.雪花特效
- 4.背景音樂
- 5.浪漫彈窗
- 6.署名制作
- 三、原始碼分享
- 四、🎄美好祝愿🎄
一、背景故事
圣誕節風波??????
馬上不就到圣誕節了嘛,我看到朋友圈里很多小伙伴再紛紛炫耀自己收到的專屬圣誕樹,也有小伙伴私信我,說還沒有自己的圣誕樹!!!


作為我的粉絲朋友們,我不允許大家還沒有專屬于自己的圣誕樹!我要讓大家收到最特別最美麗的圣誕樹,于是…冒著…期末掛科…的風險…我重拾了自己失傳已久的海龜畫圖: 海龜畫圖全解–值得你一看! (這篇文章寫了很久了,是一些海龜畫圖最基礎的操作,不太了解的小伙伴們可以拿這篇文章來快速入門海龜畫圖!)
終于…經過…昨天…一個晚上…的艱苦…奮斗,我覺得我又行了!
從最底層開始,我一步一步完善代碼設計出了:圣誕樹+落葉+雪花+背景音樂+浪漫彈窗 五合一版圣誕樹🎄🎄🎄! 話不多說,先看效果:


🌈🌈🌈哎嘿嘿,是不是非常的nice呀!看到這先別著急,為了我的期末成績著想,是不是得先給我來個一鍵三連呀!!!

接下來讓我們慢慢來聊,請大家前排就坐,爆米花自取喲(點贊+收藏相當于一份爆米花😜😜😜)
二、五合一版圣誕樹制作程序
需要用到的模塊:
import turtle as t
import random
import pygame
import threading
import time
import tkinter as tk
這是我們要用到的一些基礎庫,沒有安裝的小伙伴們可以安裝一下,要求編譯器是Python3的環境,基礎操作還不會的小伙伴看這里:??Python入門這些你必須要知道!
我用的是Pycharm,對Pycharm不懂的小伙伴look這個:全網首發,一篇文章帶你走進pycharm的世界
1.基礎圣誕樹
畫主體樹的部分看似有些麻煩,但只要你把其中的幾個回圈看明白了就行了,無非就是幾個函式重復控制畫筆移動!
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)
# 樹函式(遞回)
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) # 回退函式
# 畫愛心部分
t.penup()
t.goto(0, 200) # 設定起點位置
t.pendown()
t.pencolor('red') # 設定畫筆顏色
t.color('red')
t.begin_fill() # 對圖形進行填充
loving_heart(20) # 執行畫愛心函式
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函式,通過判斷條件控制了兩種顏色,大家也可以加入更多的顏色進行繪制落葉:
if random.randint(1, 2) == 1:
t.color('tomato')
else:
t.color('wheat')
也可以使其變成不同的形狀,也沒必要全是圓形,時間問題我就沒改,大家感興趣可以再改一下,也可以使落葉在圣誕樹上,不用全在圣誕樹下: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.雪花特效
這里我做了很詳細的介紹,大家可以參考這個來具體看,還是很好看的:
# 繪制雪花
def drawsnow(): # 定義畫雪花的方法
t.speed(0)
t.ht() # 隱藏筆頭,ht=hideturtle
t.pensize(2) # 定義筆頭大小
for i in range(200): # 畫多少雪花
t.pencolor("white") # 定義畫筆顏色為白色,其實就是雪花為白色
t.pu() # 提筆,pu=penup
t.setx(random.randint(-350, 350)) # 定義x坐標,隨機從-350到350之間選擇
t.sety(random.randint(-100, 350)) # 定義y坐標,注意雪花一般在地上不會落下,所以不會從太小的縱座軸開始
t.pd() # 落筆,pd=pendown
dens = 6 # 雪花瓣數設為6
snowsize = random.randint(1, 10) # 定義雪花大小
for j in range(dens): # 就是6,那就是畫5次,也就是一個雪花五角星
# t.forward(int(snowsize)) #int()取整數
t.fd(int(snowsize))
t.backward(int(snowsize))
# t.bd(int(snowsize)) #注意沒有bd=backward,但有fd=forward,小bug
t.right(int(360 / dens)) # 轉動角度
drawsnow()
4.背景音樂
這里使用Pygame模塊中的mixer來控制音樂的播放,需要匯入本地音樂路徑,然后就可以啦!這樣會使整個的繪制程序更加浪漫有趣!
file=r'薛之謙 - 遲遲.mp3' # 音樂的路徑
pygame.mixer.init() # 初始化
track = pygame.mixer.music.load(file) # 加載音樂檔案
pygame.mixer.music.play() # 開始播放音樂
5.浪漫彈窗
這里使用了tkinter模塊來進行小彈窗的繪制,最后是用for回圈來實作彈窗的重復性和隨機性,這也是我覺得最大的創新之處吧!驚喜重重,滿滿心意與浪漫,哈哈哈,
# 彈窗制作
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('圣誕節快樂')
window.geometry("200x50" + "+" + str(a) + "+" + str(b))
tk.Label(window,
text='圣誕節快樂!', # 標簽的文字
bg='pink', # 背景顏色
font=('..', 17), # 字體和字體大小
width=18, height=2 # 標簽長寬
).pack() # 固定視窗位置
window.mainloop()
threads = []
for i in range(100): # 需要的彈框數量
t = threading.Thread(target=dow)
threads.append(t)
time.sleep(0.01)
threads[i].start()
6.署名制作
最后我又簡單的加上了自己的署名,算是對自己產權的一種保護吧,雖然沒啥用,你們也肯定會給我去掉,但我不管,這就是一種儀式感嗷!
# 寫下署名
t.color("red") # 填充顏色
t.up() # 抬筆
t.goto(170,-200)
t.down() # 落筆
t.write("Created:是Dream呀", font=("宋體", 18, "normal"))
t.ht()
# t.done()
t.hideturtle()
三、原始碼分享
原始碼來嘍:
import turtle as t
import random
import pygame
import threading
import time
import tkinter as tk
file=r'薛之謙 - 遲遲.mp3' # 音樂的路徑
pygame.mixer.init() # 初始化
track = pygame.mixer.music.load(file) # 加載音樂檔案
pygame.mixer.music.play() # 開始播放音樂
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)
# 樹函式(遞回)
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) # 回退函式
# 畫愛心部分
t.penup()
t.goto(0, 200) # 設定起點位置
t.pendown()
t.pencolor('red') # 設定畫筆顏色
t.color('red')
t.begin_fill() # 對圖形進行填充
loving_heart(20) # 執行畫愛心函式
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)
# 繪制落葉
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)
# 繪制雪花
def drawsnow(): # 定義畫雪花的方法
t.speed(0)
t.ht() # 隱藏筆頭,ht=hideturtle
t.pensize(2) # 定義筆頭大小
for i in range(200): # 畫多少雪花
t.pencolor("white") # 定義畫筆顏色為白色,其實就是雪花為白色
t.pu() # 提筆,pu=penup
t.setx(random.randint(-350, 350)) # 定義x坐標,隨機從-350到350之間選擇
t.sety(random.randint(-100, 350)) # 定義y坐標,注意雪花一般在地上不會落下,所以不會從太小的縱座軸開始
t.pd() # 落筆,pd=pendown
dens = 6 # 雪花瓣數設為6
snowsize = random.randint(1, 10) # 定義雪花大小
for j in range(dens): # 就是6,那就是畫5次,也就是一個雪花五角星
# t.forward(int(snowsize)) #int()取整數
t.fd(int(snowsize))
t.backward(int(snowsize))
# t.bd(int(snowsize)) #注意沒有bd=backward,但有fd=forward,小bug
t.right(int(360 / dens)) # 轉動角度
drawsnow()
# 寫下署名
t.color("red") # 填充顏色
t.up() # 抬筆
t.goto(170,-200)
t.down() # 落筆
t.write("Created:是Dream呀", font=("宋體", 18, "normal"))
t.ht()
# t.done()
t.hideturtle()
time.sleep(2)
# 彈窗制作
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('圣誕節快樂')
window.geometry("200x50" + "+" + str(a) + "+" + str(b))
tk.Label(window,
text='圣誕節快樂!', # 標簽的文字
bg='pink', # 背景顏色
font=('..', 17), # 字體和字體大小
width=18, height=2 # 標簽長寬
).pack() # 固定視窗位置
window.mainloop()
threads = []
for i in range(100): # 需要的彈框數量
t = threading.Thread(target=dow)
threads.append(t)
time.sleep(0.01)
threads[i].start()
四、🎄美好祝愿🎄
希望大家在圣誕節都可以和喜歡的人在一起,送上那棵專屬于她or他的圣誕樹🎄🎄🎄!天天開心,好好生活,我一直都在喲~💘💘💘(有任何問題的話,歡迎評論區或者私信我嗷,我都會看的!)
🌲🌲🌲 好啦,這就是今天要分享給大家的全部內容了,我們下期再見!
??????如果你喜歡的話,就不要吝惜你的一鍵三連了~


轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/382041.html
標籤:其他
上一篇:谷粒商城_03_前端基礎
下一篇:我與接下來的路
