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中字典的基本知识初步介绍
May 21 Python
使用Python处理Excel表格的简单方法
Jun 07 Python
如何使用Flask-Migrate拓展数据库表结构
Jul 24 Python
Ubuntu16.04安装python3.6.5步骤详解
Jan 10 Python
python环境下安装opencv库的方法
Mar 05 Python
python上传时包含boundary时的解决方法
Apr 08 Python
Python3实现打印任意宽度的菱形代码
Apr 12 Python
在django admin中配置搜索域是一个外键时的处理方法
May 20 Python
详解Python中的编码问题(encoding与decode、str与bytes)
Sep 30 Python
Python 数据分析之逐块读取文本的实现
Dec 14 Python
Python爬虫后获取重定向url的两种方法
Jan 19 Python
golang特有程序结构入门教程
Jun 02 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
学习php设计模式 php实现适配器模式
2015/12/07 PHP
php微信开发之自定义菜单完整流程
2016/10/08 PHP
一些常用且实用的原生JavaScript函数
2010/09/08 Javascript
jquery鼠标滑过提示title具体实现代码
2013/08/06 Javascript
jQuery移除tr无效的解决方法(tr是动态添加)
2014/09/22 Javascript
js网页右下角提示框实例
2014/10/14 Javascript
jQuery实现区域打印功能代码详解
2016/06/17 Javascript
AngularJS优雅的自定义指令
2016/07/01 Javascript
实现点击下箭头变上箭头来回切换的两种方法【推荐】
2016/12/14 Javascript
Bootstrap select实现下拉框多选效果
2016/12/23 Javascript
ie下js不执行的几种可能
2017/02/28 Javascript
JS实现微信摇一摇原理解析
2017/07/22 Javascript
基于JavaScript实现带数据验证和复选框的表单提交
2017/08/23 Javascript
vue cli构建的项目中请求代理与项目打包问题
2018/02/26 Javascript
Element-ui table中过滤条件变更表格内容的方法
2018/03/02 Javascript
微信小程序使用wxParse解析html的实现示例
2018/08/30 Javascript
Vue-Quill-Editor富文本编辑器的使用教程
2018/09/21 Javascript
详解微信小程序图片地扯转base64解决方案
2019/08/18 Javascript
Python的Django框架使用入门指引
2015/04/15 Python
Python实现将目录中TXT合并成一个大TXT文件的方法
2015/07/15 Python
解决nohup重定向python输出到文件不成功的问题
2018/05/11 Python
python+selenium实现自动抢票功能实例代码
2018/11/23 Python
python爬虫 基于requests模块发起ajax的get请求实现解析
2019/08/20 Python
python 根据网易云歌曲的ID 直接下载歌曲的实例
2019/08/24 Python
python3.7调试的实例方法
2020/07/21 Python
通用的Django注册功能模块实现方法
2021/02/05 Python
悦木之源美国官网:Origins美国
2016/08/01 全球购物
澳大利亚最好的电动自行车:Leon Cycle
2020/12/19 全球购物
企业内控岗位的职责
2014/02/07 职场文书
幼儿园儿童节主持词
2014/03/21 职场文书
个人贷款授权委托书样本
2014/10/07 职场文书
机关党员四风问题个人整改措施
2014/10/26 职场文书
山楂树之恋观后感
2015/06/11 职场文书
python基于turtle绘制几何图形
2021/06/15 Python
Spring实现内置监听器
2021/07/09 Java/Android
Windows Server 2019 配置远程控制以及管理方法
2022/04/28 Servers