前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python开发_thread_布朗运动

python开发_thread_布朗运动

作者头像
Hongten
发布2018-09-13 11:58:37
6460
发布2018-09-13 11:58:37
举报
文章被收录于专栏:Hongten

这篇blog是非常有趣的,是的,他非常有趣

下面我将给大家介绍有关python中thread来实现布朗运动的一个例子

下面是运行效果:

布朗运行
布朗运行

===================================================

代码部分:

===================================================

代码语言:javascript
复制
 1 # Brownian motion -- an example of a multi-threaded Tkinter program.
 2 
 3 from tkinter import *
 4 import random
 5 import threading
 6 import time
 7 import sys
 8 
 9 #画布大小
10 WIDTH = 400
11 HEIGHT = 300
12 SIGMA = 10
13 BUZZ = 2
14 RADIUS = 2
15 LAMBDA = 10
16 FILL = 'red'
17 
18 stop = 0                                # Set when main loop exits
19 
20 def particle(canvas):
21     r = RADIUS
22     x = random.gauss(WIDTH/2.0, SIGMA)
23     y = random.gauss(HEIGHT/2.0, SIGMA)
24     p = canvas.create_oval(x-r, y-r, x+r, y+r, fill=FILL)
25     while not stop:
26         dx = random.gauss(0, BUZZ)
27         dy = random.gauss(0, BUZZ)
28         dt = random.expovariate(LAMBDA)
29         try:
30             canvas.move(p, dx, dy)
31         except TclError:
32             break
33         time.sleep(dt)
34 
35 def main():
36     global stop
37     root = Tk()
38     canvas = Canvas(root, width=WIDTH, height=HEIGHT)
39     canvas.pack(fill='both', expand=1)
40     #粒子数目
41     np = 30
42     if sys.argv[1:]:
43         np = int(sys.argv[1])
44     for i in range(np):
45         t = threading.Thread(target=particle, args=(canvas,))
46         t.start()
47     try:
48         root.mainloop()
49     finally:
50         stop = 1
51 
52 main()

更多资料:http://www.oschina.net/code/explore/Python-3.1.3/Demo/tkinter/guido/brownian.py

E | hongtenzone@foxmail.com  B | http://www.cnblogs.com/hongten

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2013-10-03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档