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实现名片管理系统
Nov 30 Python
Python3 安装PyQt5及exe打包图文教程
Jan 08 Python
Python3转换html到pdf的不同解决方案
Mar 11 Python
如何用Python制作微信好友个性签名词云图
Jun 28 Python
通过python实现随机交换礼物程序详解
Jul 10 Python
Python的numpy库下的几个小函数的用法(小结)
Jul 12 Python
Python中base64与xml取值结合问题
Dec 22 Python
python  ceiling divide 除法向上取整(或小数向上取整)的实例
Dec 27 Python
在Python中用GDAL实现矢量对栅格的切割实例
Mar 11 Python
Python判断三段线能否构成三角形的代码
Apr 12 Python
Python return语句如何实现结果返回调用
Oct 15 Python
Python函数调用追踪实现代码
Nov 27 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
再说下636单管机
2021/03/02 无线电
无数据库的详细域名查询程序PHP版(3)
2006/10/09 PHP
php模板原理讲解
2013/11/13 PHP
php的一个简单加密解密代码
2014/01/14 PHP
PHP获取不了React Native Fecth参数的解决办法
2016/08/26 PHP
根据地区不同显示时间的javascript代码
2007/08/13 Javascript
Jquery iframe内部出滚动条
2010/02/11 Javascript
锋利的jQuery 要点归纳(三) jQuery中的事件和动画(上:事件篇)
2010/03/24 Javascript
基于jQuery的表格操作插件
2010/04/22 Javascript
使用JavaScript动态设置样式实现代码及演示动画
2013/01/25 Javascript
jquery mobile changepage的三种传参方法介绍
2013/09/13 Javascript
页面载入结束自动调用js函数示例
2013/09/23 Javascript
分享一则javascript 调试技巧
2015/01/02 Javascript
jQuery-1.9.1源码分析系列(十)事件系统之事件包装
2015/11/20 Javascript
ztree获取选中节点时不能进入可视区域出现BUG如何解决
2015/12/03 Javascript
JS组件Bootstrap Table表格多行拖拽效果实现代码
2015/12/08 Javascript
原生的强大DOM选择器querySelector介绍
2016/12/21 Javascript
微信小程序实现点击按钮修改字体颜色功能【附demo源码下载】
2017/12/05 Javascript
深入理解nodejs搭建静态服务器(实现命令行)
2019/02/05 NodeJs
Vue keepAlive 数据缓存工具实现返回上一个页面浏览的位置
2019/05/10 Javascript
vue双击事件2.0事件监听(点击-双击-鼠标事件)和事件修饰符操作
2020/07/27 Javascript
vue实现简单的登录弹出框
2020/10/26 Javascript
[51:17]完美世界DOTA2联赛循环赛Inki vs DeMonsTer 第二场 10月30日
2020/10/31 DOTA
Python字符串、元组、列表、字典互相转换的方法
2016/01/23 Python
python中OrderedDict的使用方法详解
2017/05/05 Python
利用python将图片转换成excel文档格式
2017/12/30 Python
Python编写Windows Service服务程序
2018/01/04 Python
python读取几个G的csv文件方法
2019/01/07 Python
python gensim使用word2vec词向量处理中文语料的方法
2019/07/05 Python
python创建属于自己的单词词库 便于背单词
2019/07/30 Python
PyTorch中clone()、detach()及相关扩展详解
2020/12/09 Python
详解移动端HTML5页面端去掉input输入框的白色背景和边框(兼容Android和ios)
2016/12/15 HTML / CSS
协议书模板
2014/04/23 职场文书
病媒生物防治方案
2014/05/13 职场文书
办理房产证委托书
2014/09/18 职场文书
基于Redission的分布式锁实战
2022/08/14 Redis