Heim > Backend-Entwicklung > Python-Tutorial > python开发之thread实现布朗运动的方法

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

WBOY
Freigeben: 2016-06-10 15:07:23
Original
2473 Leute haben es durchsucht

本文实例讲述了python开发之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()

Nach dem Login kopieren

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

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage