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的Django框架中settings文件的部署建议
May 30 Python
Python定义二叉树及4种遍历方法实例详解
Jul 05 Python
python: 判断tuple、list、dict是否为空的方法
Oct 22 Python
为什么Python中没有"a++"这种写法
Nov 27 Python
pytest中文文档之编写断言
Sep 12 Python
基于Python实现船舶的MMSI的获取(推荐)
Oct 21 Python
python中如何使用insert函数
Jan 09 Python
将自己的数据集制作成TFRecord格式教程
Feb 17 Python
python中tkinter窗口位置\坐标\大小等实现示例
Jul 09 Python
通过实例简单了解Python sys.argv[]使用方法
Aug 04 Python
python迷宫问题深度优先遍历实例
Jun 20 Python
python绘制简单直方图(质量分布图)的方法
Apr 21 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
中东人咖啡哲学
2021/03/03 咖啡文化
同时提取多条新闻中的文本一例
2006/10/09 PHP
超强分页类2.0发布,支持自定义风格,默认4种显示模式
2007/01/02 PHP
php 需要掌握的东西 不做浮躁的人
2009/12/28 PHP
使用JSON实现数据的跨域传输的php代码
2011/12/20 PHP
PHP常用函数和常见疑难问题解答
2014/03/05 PHP
php+js实现异步图片上传实例分享
2014/06/02 PHP
Zend Framework教程之Application用法实例详解
2016/03/14 PHP
使用js画图之圆、弧、扇形
2015/01/12 Javascript
jquery实现点击查看更多内容控制段落文字展开折叠效果
2015/08/06 Javascript
Javascript闭包实例详解
2015/11/29 Javascript
jQuery的deferred对象使用详解
2016/09/25 Javascript
JavaScript 数组的深度复制解析
2016/11/02 Javascript
JS中with的替代方法与String中的正则方法详解
2016/12/23 Javascript
详解如何将angular-ui的图片轮播组件封装成一个指令
2017/05/09 Javascript
深究AngularJS——ng-checked(回写:带真实案例代码)
2017/06/13 Javascript
解决Mac node版本升级失败的问题
2018/05/16 Javascript
JavaScript门道之标准库
2018/05/26 Javascript
vue中实现点击按钮滚动到页面对应位置的方法(使用c3平滑属性实现)
2019/12/29 Javascript
vue中提示$index is not defined错误的解决方式
2020/09/02 Javascript
Python脚本实现自动将数据库备份到 Dropbox
2017/02/06 Python
Python实现识别手写数字 简易图片存储管理系统
2018/01/29 Python
Python基于递归算法实现的汉诺塔与Fibonacci数列示例
2018/04/18 Python
python 反向输出字符串的方法
2018/07/16 Python
python3对接mysql数据库实例详解
2019/04/30 Python
Jupyter notebook无法导入第三方模块的解决方式
2020/04/15 Python
Django admin管理工具TabularInline类用法详解
2020/05/14 Python
CSS3动画之流彩文字效果+图片模糊效果+边框伸展效果实现代码合集
2017/08/18 HTML / CSS
Looking4Parking美国:全球排名第一的机场停车比较品牌
2019/08/26 全球购物
请写出 BOOL flag 与"零值"比较的 if 语句
2016/02/29 面试题
过程装备与控制工程专业求职信
2014/07/02 职场文书
关于教师节的广播稿
2014/09/10 职场文书
2016秋季田径运动会广播稿
2015/12/21 职场文书
python图像处理基本操作总结(PIL库、Matplotlib及Numpy)
2021/06/08 Python
如何通过一篇文章了解Python中的生成器
2022/04/02 Python
python标准库ElementTree处理xml
2022/05/20 Python