最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python繪制圣誕樹+落葉+雪花+背景音樂+浪漫彈窗?五合一版圣誕樹

 更新時間:2021年12月16日 10:44:48   作者:是Dream呀  
馬上不就到圣誕節(jié)了嘛,我看到朋友圈里很多小伙伴再紛紛炫耀自己收到的專屬圣誕樹,今天小編給大家介紹的是通過Python繪制的五合一版圣誕樹:圣誕樹+落葉+雪花+背景音樂+浪漫彈窗。感興趣的小伙伴快來學習一下吧

一、背景故事

圣誕節(jié)風波

馬上不就到圣誕節(jié)了嘛,我看到朋友圈里很多小伙伴再紛紛炫耀自己收到的專屬圣誕樹,也有小伙伴私信我,說還沒有自己的圣誕樹!?。?/p>

作為我的粉絲朋友們,我不允許大家還沒有專屬于自己的圣誕樹!我要讓大家收到最特別最美麗的圣誕樹,于是…冒著…期末掛科…的風險…我重拾了自己失傳已久的海龜畫圖: 海龜畫圖全解-值得你一看!(這篇文章寫了很久了,是一些海龜畫圖最基礎的操作,不太了解的小伙伴們可以拿這篇文章來快速入門海龜畫圖?。?/span>

終于…經(jīng)過…昨天…一個晚上…的艱苦…奮斗,我覺得我又行了!

從最底層開始,我一步一步完善代碼設計出了:圣誕樹+落葉+雪花+背景音樂+浪漫彈窗 五合一版圣誕樹! 話不多說,先看效果:

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

接下來讓我們慢慢來聊,請大家前排就坐,爆米花自取喲

二、五合一版圣誕樹制作過程

需要用到的模塊:

import turtle as t
import random
import pygame
import threading
import time
import tkinter as tk

這是我們要用到的一些基礎庫,沒有安裝的小伙伴們可以安裝一下,要求編譯器是Python3的環(huán)境。

1.基礎圣誕樹

畫主體樹的部分看似有些麻煩,但只要你把其中的幾個循環(huán)看明白了就行了,無非就是幾個函數(shù)重復控制畫筆移動!

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)  # 設置起點位置
t.pendown()
t.pencolor('red')  # 設置畫筆顏色
t.color('red')
t.begin_fill()  # 對圖形進行填充
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ù),通過判斷條件控制了兩種顏色,大家也可以加入更多的顏色進行繪制落葉:

 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  # 雪花瓣數(shù)設為6
        snowsize = random.randint(1, 10)  # 定義雪花大小
        for j in range(dens):  # 就是6,那就是畫5次,也就是一個雪花五角星
            # 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)動角度
drawsnow()

4.背景音樂

這里使用Pygame模塊中的mixer來控制音樂的播放,需要導入本地音樂路徑,然后就可以啦!這樣會使整個的繪制過程更加浪漫有趣!

file=r'薛之謙 - 遲遲.mp3'		# 音樂的路徑
pygame.mixer.init()						# 初始化
track = pygame.mixer.music.load(file)	# 加載音樂文件
pygame.mixer.music.play()				# 開始播放音樂

5.浪漫彈窗

這里使用了tkinter模塊來進行小彈窗的繪制,最后是用for循環(huán)來實現(xiàn)彈窗的重復性和隨機性,這也是我覺得最大的創(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é)快樂!',  # 標簽的文字
             bg='pink',  # 背景顏色
             font=('..', 17),  # 字體和字體大小
             width=18, height=2  # 標簽長寬
             ).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.署名制作

最后我又簡單的加上了自己的署名,算是對自己產(chǎn)權(quán)的一種保護吧。雖然沒啥用,你們也肯定會給我去掉,但我不管,這就是一種儀式感嗷!

# 寫下署名
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)


# 樹函數(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)  # 設置起點位置
t.pendown()
t.pencolor('red')  # 設置畫筆顏色
t.color('red')
t.begin_fill()  # 對圖形進行填充
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)

# 繪制落葉
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  # 雪花瓣數(shù)設為6
        snowsize = random.randint(1, 10)  # 定義雪花大小
        for j in range(dens):  # 就是6,那就是畫5次,也就是一個雪花五角星
            # 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)動角度
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('圣誕節(jié)快樂')
    window.geometry("200x50" + "+" + str(a) + "+" + str(b))
    tk.Label(window,
             text='圣誕節(jié)快樂!',  # 標簽的文字
             bg='pink',  # 背景顏色
             font=('..', 17),  # 字體和字體大小
             width=18, height=2  # 標簽長寬
             ).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() 

以上就是Python繪制圣誕樹+落葉+雪花+背景音樂+浪漫彈窗 五合一版圣誕樹的詳細內(nèi)容,更多關(guān)于Python繪制圣誕樹的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 實例講解Python中g(shù)lobal語句下全局變量的值的修改

    實例講解Python中g(shù)lobal語句下全局變量的值的修改

    global是Python中的一個關(guān)鍵字用來,聲明一個局部變量為全局變量,這里我們來以實例講解Python中g(shù)lobal語句下全局變量的值的修改,需要的朋友可以參考下.
    2016-06-06
  • 簡單了解django文件下載方式

    簡單了解django文件下載方式

    這篇文章主要介紹了簡單了解django三種文件下載方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-02-02
  • Python讀取圖像并顯示灰度圖的實現(xiàn)

    Python讀取圖像并顯示灰度圖的實現(xiàn)

    這篇文章主要介紹了Python讀取圖像并顯示灰度圖的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • Pandas刪除數(shù)據(jù)的幾種情況(小結(jié))

    Pandas刪除數(shù)據(jù)的幾種情況(小結(jié))

    這篇文章主要介紹了Pandas刪除數(shù)據(jù)的幾種情況(小結(jié)),詳細的介紹了4種方式,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • python并發(fā)編程多進程 模擬搶票實現(xiàn)過程

    python并發(fā)編程多進程 模擬搶票實現(xiàn)過程

    這篇文章主要介紹了python并發(fā)編程多進程 模擬搶票實現(xiàn)過程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-08-08
  • pytorch實現(xiàn)focal loss的兩種方式小結(jié)

    pytorch實現(xiàn)focal loss的兩種方式小結(jié)

    今天小編就為大家分享一篇pytorch實現(xiàn)focal loss的兩種方式小結(jié),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • pandas?Dataframe實現(xiàn)批量修改值的方法

    pandas?Dataframe實現(xiàn)批量修改值的方法

    這篇文章主要介紹了pandas?Dataframe實現(xiàn)批量修改值的方法,在使用dataframe的時候?有時候會碰到需要批量修改數(shù)據(jù)的時候,下面文章主要說明兩種情況使用iloc對某幾行某幾列進行全部修該和對數(shù)據(jù)進行判定后,相互+/-/*某個數(shù),使用內(nèi)置函數(shù),需要的朋友可以參考一下
    2022-06-06
  • Python Tornado之跨域請求與Options請求方式

    Python Tornado之跨域請求與Options請求方式

    這篇文章主要介紹了Python Tornado之跨域請求與Options請求方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Django實現(xiàn)前后端登錄

    Django實現(xiàn)前后端登錄

    這篇文章主要介紹了Django實現(xiàn)前后端登錄的示例,幫助大家更好的理解和學習使用Django,感興趣的朋友可以了解下
    2021-04-04
  • Python?ttkbootstrap的介紹與使用教程

    Python?ttkbootstrap的介紹與使用教程

    這篇文章主要介紹了Python?ttkbootstrap的介紹與使用,本文僅僅簡單介紹了ttkbootstrap的使用,而ttkbootstrap可以使我們創(chuàng)建一個簡單用戶圖形界面,并對其可以做一些操作,需要的朋友可以參考下
    2023-03-03

最新評論

申扎县| 北票市| 安康市| 临清市| 吉安市| 天长市| 仁布县| 方正县| 福建省| 衡东县| 淳化县| 水城县| 资阳市| 汶上县| 民县| 北碚区| 赫章县| 新建县| 达尔| 连云港市| 苏尼特右旗| 新营市| 定南县| 原阳县| 鄂尔多斯市| 嫩江县| 察雅县| 武川县| 偃师市| 湖口县| 巴里| 卢氏县| 龙井市| 河源市| 丰镇市| 兖州市| 泾川县| 榆中县| 科尔| 冀州市| 宽城|