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装饰器decorator介绍
Nov 21 Python
Python爬取qq music中的音乐url及批量下载
Mar 23 Python
Python3学习笔记之列表方法示例详解
Oct 06 Python
python numpy和list查询其中某个数的个数及定位方法
Jun 27 Python
python 将字符串完成特定的向右移动方法
Jun 11 Python
pycharm编写spark程序,导入pyspark包的3中实现方法
Aug 02 Python
画pytorch模型图,以及参数计算的方法
Aug 17 Python
Python tkinter 下拉日历控件代码
Mar 04 Python
基于django micro搭建网站实现加水印功能
May 22 Python
python语言中有算法吗
Jun 16 Python
使用pytorch实现论文中的unet网络
Jun 24 Python
再谈python_tkinter弹出对话框创建
Mar 20 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
CPU步进是什么意思?i3-9100F B0步进和U0步进区别知识科普
2020/03/17 数码科技
PHP命名空间(Namespace)简明教程
2014/06/11 PHP
PHP SOCKET编程详解
2015/05/22 PHP
1亿条数据如何分表100张到Mysql数据库中(PHP)
2015/07/29 PHP
分享PHP计算两个日期相差天数的代码
2015/12/23 PHP
详解WordPress中调用评论模板和循环输出评论的PHP函数
2016/01/05 PHP
php无限级评论嵌套实现代码
2018/04/18 PHP
JS动态添加与删除select中的Option对象(示例代码)
2013/12/25 Javascript
javascript中bind函数的作用实例介绍
2014/09/28 Javascript
jQuery获取页面元素绝对与相对位置的方法
2015/06/10 Javascript
JavaScript使用FileSystemObject对象写入文本文件内容的方法
2015/08/05 Javascript
JavaScript中innerHTML,innerText,outerHTML的用法及区别
2015/09/01 Javascript
Javascript类型转换的规则实例解析
2016/02/23 Javascript
AngularJs 弹出模态框(model)
2016/04/07 Javascript
jQuery提示插件qTip2用法分析(支持ajax及多种样式)
2016/06/08 Javascript
bootstrap——bootstrapTable实现隐藏列的示例
2017/01/14 Javascript
JavaScript实现三级联动菜单实例代码
2017/06/26 Javascript
详解vue几种主动刷新的方法总结
2019/02/19 Javascript
探索JavaScript中私有成员的相关知识
2019/06/13 Javascript
vue+mock.js实现前后端分离
2019/07/24 Javascript
JS控制GIF图片的停止与显示
2019/10/24 Javascript
微信小程序实现签字功能
2019/12/23 Javascript
[02:49]2014DOTA2电竞也是体育项目! 势要把荣誉带回中国!
2014/07/20 DOTA
[55:54]FNATIC vs EG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Django1.3添加app提示模块不存在的解决方法
2014/08/26 Python
Python Queue模块详解
2014/11/30 Python
python append、extend与insert的区别
2016/10/13 Python
python中使用%与.format格式化文本方法解析
2017/12/27 Python
python实现邮件发送功能
2019/08/10 Python
解决python 文本过滤和清理问题
2019/08/28 Python
HTML5中的postMessage API基本使用教程
2016/05/20 HTML / CSS
6号汽车旅馆预订:Motel 6
2018/02/11 全球购物
数控技术应届生求职信
2013/11/13 职场文书
装修五一活动策划案
2014/01/23 职场文书
教师党员自我评价2015
2015/03/04 职场文书
劳动保障事务所个人工作总结
2015/08/12 职场文书