python開發(fā)之thread實現布朗運動的方法
更新時間:2015年11月11日 10:05:28 作者:Hongten
這篇文章主要介紹了python開發(fā)之thread實現布朗運動的方法,實例分析了Python基于多線程實現繪圖的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下
本文實例講述了python開發(fā)之thread實現布朗運動的方法。分享給大家供大家參考,具體如下:
這里我將給大家介紹有關python中thread來實現布朗運動的一個例子
下面是運行效果:
代碼部分:
# Brownian motion -- an example of a multi-threaded Tkinter program. from tkinter import * import random import threading import time import sys #畫布大小 WIDTH = 400 HEIGHT = 300 SIGMA = 10 BUZZ = 2 RADIUS = 2 LAMBDA = 10 FILL = 'red' stop = 0 # Set when main loop exits def particle(canvas): r = RADIUS x = random.gauss(WIDTH/2.0, SIGMA) y = random.gauss(HEIGHT/2.0, SIGMA) p = canvas.create_oval(x-r, y-r, x+r, y+r, fill=FILL) while not stop: dx = random.gauss(0, BUZZ) dy = random.gauss(0, BUZZ) dt = random.expovariate(LAMBDA) try: canvas.move(p, dx, dy) except TclError: break time.sleep(dt) def main(): global stop root = Tk() canvas = Canvas(root, width=WIDTH, height=HEIGHT) canvas.pack(fill='both', expand=1) #粒子數目 np = 30 if sys.argv[1:]: np = int(sys.argv[1]) for i in range(np): t = threading.Thread(target=particle, args=(canvas,)) t.start() try: root.mainloop() finally: stop = 1 main()
希望本文所述對大家Python程序設計有所幫助。
相關文章
Python趣味挑戰(zhàn)之用pygame實現簡單的金幣旋轉效果
今天教大家怎么用pygame實現簡單的金幣旋轉效果,文中有非常詳細的代碼示例,對正在學習python的小伙伴們很有幫助,需要的朋友可以參考下2021-05-05Python Django安裝配置模板系統(tǒng)及使用實戰(zhàn)全面詳解
本文首先介紹了Django模板系統(tǒng)的基礎知識,接著探討了如何安裝和配置Django模板系統(tǒng),然后深入解析了Django模板的基本結構、標簽和過濾器的用法,闡述了如何在模板中展示模型數據,最后使用一個實際項目的例子來演示如何在實際開發(fā)中使用Django模板系統(tǒng)2023-09-09Python 對象序列化與反序列化之pickle json詳細解析
我們知道在Python中,一切皆為對象,實例是對象,類是對象,元類也是對象。本文正是要聊聊如何將這些對象有效地保存起來,以供后續(xù)使用2021-09-09