首页 > 编程 > Python > 正文

python开发之thread实现布朗运动的方法

2019-11-25 17:02:34
字体:
来源:转载
供稿:网友

本文实例讲述了python开发之thread实现布朗运动的方法。分享给大家供大家参考,具体如下:

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

下面是运行效果:

代码部分:

# Brownian motion -- an example of a multi-threaded Tkinter program.from tkinter import *import randomimport threadingimport timeimport sys#画布大小WIDTH = 400HEIGHT = 300SIGMA = 10BUZZ = 2RADIUS = 2LAMBDA = 10FILL = 'red'stop = 0 # Set when main loop exitsdef 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 = 1main()

希望本文所述对大家Python程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表