欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于python實現(xiàn)新春煙花盛宴效果

 更新時間:2024年02月05日 10:32:07   作者:Want595  
這篇文章給大家用Python綻放了一場新春煙花盛宴,這里提前祝大家新春快樂呀,文中通過代碼示例給大家介紹的非常詳細,感興趣的小伙伴可以自己動手嘗試一下

效果預覽

環(huán)境需求

  • python3.11.4及以上
  • PyCharm Community Edition 2023.2.5
  • pyinstaller6.2.0(可選,這個庫用于打包,使程序沒有python環(huán)境也可以運行,如果想發(fā)給好朋友的話需要這個庫哦~)

【注】

新春煙花

程序設計

# 導入必要的庫
import tkinter  # 導入tkinter庫用于GUI
import random  # 導入random庫用于生成隨機數(shù)
 
# 函數(shù):將窗口居中顯示
def center_window(window, width, height):
    screen_width = window.winfo_screenwidth()
    screen_height = window.winfo_screenheight()
 
    x = (screen_width - width) // 2
    y = (screen_height - height) // 2
 
    window.geometry(f'{width}x{height}+{x}+{y}')  # 設置窗口的位置和大小
 
# 函數(shù):生成隨機顏色
def color():
    r = random.randint(0, 255)
    g = random.randint(0, 255)
    b = random.randint(0, 255)
    return f'#{r:02x}{g:02x}{b:02x}'  # 返回隨機顏色值的字符串表示
 
# 創(chuàng)建主窗口
root = tkinter.Tk()  # 創(chuàng)建主窗口對象
root.title("新春煙花")  # 設置窗口標題
width = 888
height = 666
center_window(root, width, height)  # 調用center_window函數(shù)將窗口居中顯示
 
# 創(chuàng)建畫布
canvas = tkinter.Canvas(root, bg='black')  # 創(chuàng)建畫布對象,背景色為黑色
canvas.pack(fill=tkinter.BOTH, expand=1)  # 將畫布填滿整個窗口并擴展
 
# 鼠標點擊事件處理函數(shù)
def on_click(event):
    x = event.x
    y = event.y
    firework = Firework(canvas, x, y)  # 創(chuàng)建Firework對象
    firework.fire()  # 發(fā)射煙花
 
# 綁定鼠標點擊事件
canvas.bind('<Button-1>', on_click)
 
# 運行主循環(huán)
root.mainloop()  # 啟動主循環(huán),等待用戶交互事件
 
……(完整代碼見文末系列文章哦)

程序分析

這段代碼是使用Python的Tkinter庫創(chuàng)建的一個簡單GUI應用程序,模擬了新春煙花的效果。程序的主要功能是在用戶點擊畫布時,在鼠標點擊的位置生成并動態(tài)展示煙花效果。

代碼結構與功能概述:

1. 導入所需的庫:

   - `tkinter`:用于構建圖形用戶界面(GUI)的基礎庫。

   - `random`:用于生成隨機數(shù)以實現(xiàn)不同顏色和粒子運動軌跡的變化。

2. 定義輔助函數(shù):

   - `center_window(window, width, height)`:接受窗口對象、寬度和高度參數(shù),計算窗口在屏幕上的居中坐標,并設置窗口大小和位置。

3. 定義一個生成隨機顏色的方法 `color()`,返回一個隨機RGB值表示的顏色字符串。

4. 定義了一個名為`Firework`的類,其包含以下方法:

   - `__init__(self, canvas, x, y)`:初始化煙花對象,包括畫布引用、初始坐標、隨機顏色以及煙花粒子列表。

   - `create_particles(self)`:為煙花生成一定數(shù)量(99個)的隨機速度的粒子,每個粒子用橢圓表示,并存儲粒子ID及其速度信息。

   - `update(self)`:更新煙花狀態(tài),增加粒子半徑、減少壽命,并根據(jù)粒子速度移動粒子,移除超出畫布范圍的粒子。

   - `fire(self)`:在畫布上繪制出煙花主體,并啟動定時器調用`launch`方法開始連續(xù)更新煙花狀態(tài)。

   - `launch(self)`:連續(xù)執(zhí)行`update`方法,當所有粒子消失或煙花壽命結束時從畫布上刪除煙花。

5. 創(chuàng)建主窗口`root`,設置標題和窗口尺寸,并調用`center_window`將其居中顯示。

6. 在窗口內(nèi)創(chuàng)建一個黑色背景的畫布,并將畫布填滿整個窗口。

7. 定義鼠標點擊事件處理函數(shù)`on_click(event)`,在鼠標左鍵點擊時,根據(jù)點擊坐標創(chuàng)建一個`Firework`實例并發(fā)射煙花。

8. 將鼠標點擊事件綁定到畫布上。

9. 最后運行主循環(huán)`root.mainloop()`,持續(xù)監(jiān)聽用戶交互和GUI事件,直到窗口被關閉。

通過這個程序,用戶可以在畫布上任意位置點擊來觸發(fā)煙花動畫,每朵煙花由多個隨機顏色和方向的粒子組成,粒子會按照設定的速度在畫布上移動,逐漸擴散并最終消失,從而模擬出真實的煙花綻放和消散的效果。

運行結果

寫在最后

到此這篇關于基于python實現(xiàn)新春煙花盛宴效果的文章就介紹到這了,更多相關python新春煙花效果內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • python實現(xiàn)socket簡單通信的示例代碼

    python實現(xiàn)socket簡單通信的示例代碼

    這篇文章主要介紹了python實現(xiàn)socket簡單通信的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • Ubuntu安裝Python3.8的兩種方法詳解

    Ubuntu安裝Python3.8的兩種方法詳解

    這篇文章主要給大家介紹了關于Ubuntu安裝Python3.8的兩種方法,在Ubuntu上安裝Python非常簡單,文中介紹了兩種方法,每種方法都給出了詳細實例,需要的朋友可以參考下
    2023-09-09
  • python3實現(xiàn)點餐系統(tǒng)

    python3實現(xiàn)點餐系統(tǒng)

    這篇文章主要為大家詳細介紹了python3實現(xiàn)點餐系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • python中enumerate的用法實例解析

    python中enumerate的用法實例解析

    這篇文章主要介紹了python中enumerate的用法,對Python初學者而言是非常重要的概念,需要的朋友可以參考下
    2014-08-08
  • Python函數(shù)和模塊的使用詳情

    Python函數(shù)和模塊的使用詳情

    這篇文章主要介紹了Python函數(shù)和模塊的使用詳情,文章基于python的相關資料展開主題的具體介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-04-04
  • Cpy和Python的效率對比

    Cpy和Python的效率對比

    這篇文章主要介紹了Cpy和Python的效率對比,本文用一個循環(huán) 100000000 遍的代碼對比了Cpy和Python運行效率測試,需要的朋友可以參考下
    2015-03-03
  • 詳解Python中的枚舉類型

    詳解Python中的枚舉類型

    枚舉(Enum)是一種數(shù)據(jù)類型,是綁定到唯一值的符號表示。。本文就來和大家聊聊Python中的枚舉類型,為什么需要枚舉類型,及如何使用
    2022-08-08
  • Pytorch中如何調用forward()函數(shù)

    Pytorch中如何調用forward()函數(shù)

    這篇文章主要介紹了Pytorch中如何調用forward()函數(shù)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • python運算符+條件結構+循環(huán)結構

    python運算符+條件結構+循環(huán)結構

    這篇文章主要介紹了python運算符、條件結構、循環(huán)結構;算術運算符、賦值運算符、邏輯運算符等一些相關內(nèi)容,需要的小伙伴可以參考一下,希望對你的學習有所幫助
    2022-03-03
  • Python對130w+張圖片檢索的實現(xiàn)方法

    Python對130w+張圖片檢索的實現(xiàn)方法

    這篇文章主要給大家介紹了關于Python對130w+張圖片檢索的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03

最新評論