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 相关文章推荐
django框架如何集成celery进行开发
May 24 Python
Python实现学校管理系统
Jan 11 Python
python selenium 对浏览器标签页进行关闭和切换的方法
May 21 Python
Pandas之MultiIndex对象的示例详解
Jun 25 Python
python如何将多个PDF进行合并
Aug 13 Python
Python 类的私有属性和私有方法实例分析
Sep 29 Python
python 操作hive pyhs2方式
Dec 21 Python
pycharm 设置项目的根目录教程
Feb 12 Python
Python批量启动多线程代码实例
Feb 18 Python
django实现模型字段动态choice的操作
Apr 01 Python
如何通过安装HomeBrew来安装Python3
Dec 23 Python
python爬虫用request库处理cookie的实例讲解
Feb 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
Thinkphp自定义代码生成工具及用法说明(附下载地址)
2016/05/27 PHP
php实现36进制与10进制转换功能示例
2017/01/10 PHP
PHP连接MYSQL数据库的3种常用方法
2017/02/27 PHP
PHP简单实现循环链表功能示例
2017/11/10 PHP
Thinkphp5框架ajax接口实现方法分析
2019/08/28 PHP
JQuery优缺点分析说明
2011/04/10 Javascript
js中escape对应的C#解码函数 UrlDecode
2012/12/16 Javascript
jquery.idTabs 选项卡使用示例代码
2014/09/03 Javascript
jquery隔行换色效果实现方法
2015/01/15 Javascript
jQuery+slidereveal实现的面板滑动侧边展出效果
2015/03/14 Javascript
跟我学习javascript的执行上下文
2015/11/18 Javascript
基于jquery插件实现拖拽删除图片功能
2020/08/27 Javascript
jQuery Mobile 触摸事件实例
2016/06/04 Javascript
Mui使用jquery并且使用点击跳转新窗口的实例
2017/08/19 jQuery
React如何利用相对于根目录进行引用组件详解
2017/10/09 Javascript
原生JS实现ajax与ajax的跨域请求实例
2017/12/01 Javascript
JavaScript学习笔记之数组基本操作示例
2019/01/09 Javascript
使用ESLint禁止项目导入特定模块的方法步骤
2019/03/04 Javascript
解决vue 单文件组件中样式加载问题
2019/04/24 Javascript
vue中利用simplemde实现markdown编辑器(增加图片上传功能)
2019/04/29 Javascript
[02:12]DOTA2英雄基础教程 变体精灵
2013/12/16 DOTA
[48:29]2018DOTA2亚洲邀请赛3月30日 小组赛A组 LGD VS KG
2018/03/31 DOTA
Python的垃圾回收机制深入分析
2014/07/16 Python
浅谈django model的get和filter方法的区别(必看篇)
2017/05/23 Python
Python实现曲线点抽稀算法的示例
2017/10/12 Python
使用python将大量数据导出到Excel中的小技巧分享
2018/06/14 Python
python基于http下载视频或音频
2018/06/20 Python
PyCharm代码提示忽略大小写设置方法
2018/10/28 Python
Pycharm 设置默认头的图文教程
2019/01/17 Python
python实现飞机大战小游戏
2019/11/08 Python
Python request操作步骤及代码实例
2020/04/13 Python
雅诗兰黛澳大利亚官网:Estée Lauder澳大利亚
2019/05/31 全球购物
考博专家推荐信
2014/05/10 职场文书
公司年会策划方案
2014/05/17 职场文书
高效课堂标语
2014/06/26 职场文书
MySQL transaction事务安全示例讲解
2022/06/21 MySQL