canvas教程

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

字号+ 作者:H5之家 来源:H5之家 2015-11-13 16:56 我要评论( )

这篇文章主要介绍了python开发之thread实现布朗运动的方法,实例分析了Python基于多线程实现绘图的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下

# 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()

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • Python中使用Tkinter画图

    Python中使用Tkinter画图

    2017-03-22 15:00

  • Python程序的执行原理

    Python程序的执行原理

    2017-03-11 10:00

  • Python小作业一(用户登录交互界面)

    Python小作业一(用户登录交互界面)

    2017-02-17 15:04

  • Tkinter教程之Canvas篇(4)

    Tkinter教程之Canvas篇(4)

    2016-08-28 10:00

网友点评