python開發(fā)之thread實現(xiàn)布朗運動的方法
更新時間:2015年11月11日 10:05:28 作者:Hongten
這篇文章主要介紹了python開發(fā)之thread實現(xiàn)布朗運動的方法,實例分析了Python基于多線程實現(xiàn)繪圖的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
本文實例講述了python開發(fā)之thread實現(xiàn)布朗運動的方法。分享給大家供大家參考,具體如下:
這里我將給大家介紹有關(guān)python中thread來實現(xiàn)布朗運動的一個例子
下面是運行效果:

代碼部分:
# 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)
#粒子數(shù)目
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程序設(shè)計有所幫助。
相關(guān)文章
解決python3中自定義wsgi函數(shù),make_server函數(shù)報錯的問題
下面小編就為大家分享一篇解決python3中自定義wsgi函數(shù),make_server函數(shù)報錯的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-11-11
python Pygal庫生成SVG(可縮放矢量圖形)圖表示例
這篇文章主要為大家介紹了python Pygal庫生成SVG(可縮放矢量圖形)圖表示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2024-01-01
Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)字典相關(guān)計算問題示例
這篇文章主要介紹了Python字典相關(guān)計算問題,結(jié)合實例形式總結(jié)分析了Python字典相關(guān)的最小值、最大值、排序等操作相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2018-02-02

