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


Posted in Python onNovember 11, 2015

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

这里我将给大家介绍有关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()

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

Python 相关文章推荐
Python 序列化 pickle/cPickle模块使用介绍
Nov 30 Python
python中defaultdict的用法详解
Jun 07 Python
Python实现压缩和解压缩ZIP文件的方法分析
Sep 28 Python
python中学习K-Means和图片压缩
Nov 20 Python
Windows环境下python环境安装使用图文教程
Mar 13 Python
利用Django-environ如何区分不同环境
Aug 26 Python
通过Python编写一个简单登录功能过程解析
Sep 04 Python
python openvc 裁剪、剪切图片 提取图片的行和列
Sep 19 Python
彻底搞懂 python 中文乱码问题(深入分析)
Feb 28 Python
Python过滤掉numpy.array中非nan数据实例
Jun 08 Python
Python sqlalchemy时间戳及密码管理实现代码详解
Aug 01 Python
python中Array和DataFrame相互转换的实例讲解
Feb 03 Python
python开发之基于thread线程搜索本地文件的方法
Nov 11 #Python
python开发之tkinter实现图形随鼠标移动的方法
Nov 11 #Python
Python复制文件操作实例详解
Nov 10 #Python
Python中对元组和列表按条件进行排序的方法示例
Nov 10 #Python
Python 文件管理实例详解
Nov 10 #Python
Python list操作用法总结
Nov 10 #Python
python控制台中实现进度条功能
Nov 10 #Python
You might like
巧用php中的array_filter()函数去掉多维空值的代码分享
2012/09/07 PHP
PHP 伪静态技术原理以及突破原理实现介绍
2013/07/12 PHP
ThinkPHP CURD方法之limit方法详解
2014/06/18 PHP
Smarty foreach控制循环次数的一些方法
2015/07/01 PHP
Laravel中Facade的加载过程与原理详解
2017/09/22 PHP
PHP数组常用函数实例小结
2018/08/20 PHP
Yii框架函数简单用法分析
2019/09/09 PHP
让getElementsByName适应IE和firefox的方法
2007/09/24 Javascript
jquery之Document元素选择器篇
2008/08/14 Javascript
js 字符串操作函数
2009/07/25 Javascript
IE iframe的onload方法分析小结
2010/01/07 Javascript
javascript 事件处理程序介绍
2012/06/27 Javascript
js/jquery去掉空格,回车,换行示例代码
2013/11/05 Javascript
Async Validator 异步验证使用说明
2017/07/03 Javascript
老生常谈javascript的面向对象思想
2017/08/22 Javascript
echarts学习笔记之图表自适应问题详解
2017/11/22 Javascript
微信小程序实现页面浮动导航
2019/01/28 Javascript
详解vue 中 scoped 样式作用域的规则
2020/09/14 Javascript
python实现12306火车票查询器
2017/04/20 Python
python实现的正则表达式功能入门教程【经典】
2017/06/05 Python
Python调用C# Com dll组件实战教程
2017/10/12 Python
Django如何配置mysql数据库
2018/05/04 Python
python画折线图的程序
2018/07/26 Python
python3.6中@property装饰器的使用方法示例
2019/08/17 Python
Sixt美国租车:高端豪华车型自驾体验
2017/09/02 全球购物
英国拖鞋购买网站:Bedroom Athletics
2020/02/28 全球购物
AJAX的全称是什么
2012/11/06 面试题
社区庆中秋节活动方案
2014/02/07 职场文书
消防安全承诺书
2014/05/22 职场文书
英文求职信范文
2014/05/23 职场文书
三关爱志愿服务活动方案
2014/08/17 职场文书
2014年后备干部工作总结
2014/12/08 职场文书
男方婚礼答谢词
2015/01/20 职场文书
pandas 操作 Excel操作总结
2021/03/31 Python
基于go interface{}==nil 的几种坑及原理分析
2021/04/24 Golang
解决python3安装pandas出错的问题
2021/05/20 Python