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学习手册中的python多态示例代码
Jan 21 Python
python基础教程之popen函数操作其它程序的输入和输出示例
Feb 10 Python
Python中optparser库用法实例详解
Jan 26 Python
Python3实现带附件的定时发送邮件功能
Dec 22 Python
python中的不可变数据类型与可变数据类型详解
Sep 16 Python
Python 获取windows桌面路径的5种方法小结
Jul 15 Python
在django中,关于session的通用设置方法
Aug 06 Python
Pytorch 抽取vgg各层并进行定制化处理的方法
Aug 20 Python
python GUI库图形界面开发之PyQt5窗口类QMainWindow详细使用方法
Feb 26 Python
django从后台返回html代码的实例
Mar 11 Python
基于Python中random.sample()的替代方案
May 23 Python
python字典的值可以修改吗
Jun 29 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
基于PHP5魔术常量与魔术方法的详解
2013/06/13 PHP
PHP多线程类及用法实例
2014/12/03 PHP
PHP+MySql+jQuery实现的"顶"和"踩"投票功能
2016/05/21 PHP
thinkphp多表查询两表有重复相同字段的完美解决方法
2016/09/22 PHP
iframe自适应宽度、高度 ie6 7 8,firefox 3.86下测试通过
2010/07/29 Javascript
onkeydown事件解决按回车键直接提交数据的需求
2013/04/11 Javascript
JS定时关闭窗口的实例
2013/05/22 Javascript
无刷新预览所选择的图片示例代码
2014/04/02 Javascript
form.submit()不能提交表单的错误原因及解决方法
2014/10/13 Javascript
对象转换为原始值的实现方法
2016/06/06 Javascript
浅谈String.valueOf()方法的使用
2016/06/06 Javascript
AngularJS基础 ng-if 指令用法
2016/08/01 Javascript
浅谈jquery中next与siblings的区别
2016/10/27 Javascript
JS中作用域和变量提升(hoisting)的深入理解
2016/10/31 Javascript
jQuery插件之validation插件
2017/03/29 jQuery
解决AngualrJS页面刷新导致异常显示问题
2017/04/20 Javascript
nodejs入门教程五:连接数据库的方法分析
2017/04/24 NodeJs
Vue项目webpack打包部署到服务器的实例详解
2017/07/17 Javascript
angularjs 页面自适应高度的方法
2018/01/17 Javascript
基于vue-cli 打包时抽离项目相关配置文件详解
2018/03/07 Javascript
React styled-components设置组件属性的方法
2018/08/07 Javascript
使用electron制作满屏心特效的示例代码
2018/11/27 Javascript
在Python3中使用asyncio库进行快速数据抓取的教程
2015/04/02 Python
Python多线程经典问题之乘客做公交车算法实例
2017/03/22 Python
对python-3-print重定向输出的几种方法总结
2018/05/11 Python
Django项目使用CircleCI的方法示例
2019/07/14 Python
Python实现PyPDF2处理PDF文件的方法示例
2019/09/25 Python
使用Django搭建网站实现商品分页功能
2020/05/22 Python
VICHY薇姿美国官方网站:欧洲药房第一的抗衰老品牌
2017/11/22 全球购物
鼓舞士气的口号
2014/06/16 职场文书
初级党校心得体会
2014/09/11 职场文书
2015年基层党组织公开承诺书
2015/01/21 职场文书
公司备用金管理制度
2015/08/04 职场文书
如何让2019年上半年的工作总结更出色!
2019/07/01 职场文书
如何理解及使用Python闭包
2021/06/01 Python
Vue的列表之渲染,排序,过滤详解
2022/02/24 Vue.js