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实现多线程下载文件的代码实例
Jun 01 Python
Python中的列表知识点汇总
Apr 14 Python
Python函数可变参数定义及其参数传递方式实例详解
May 25 Python
Python中应该使用%还是format来格式化字符串
Sep 25 Python
Pycharm运行加载文本出现错误的解决方法
Jun 27 Python
python匿名函数lambda原理及实例解析
Feb 07 Python
PyCharm永久激活方式(推荐)
Sep 22 Python
python 删除excel表格重复行,数据预处理操作
Jul 06 Python
使用AJAX和Django获取数据的方法实例
Oct 25 Python
selenium自动化测试入门实战
Dec 21 Python
Python如何识别银行卡卡号?
Jun 10 Python
用Python爬取某乎手机APP数据
Jun 15 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
FleaPHP的安全设置方法
2008/09/15 PHP
php防止sql注入代码实例
2013/12/18 PHP
PHP+jquery+ajax实现即时聊天功能实例
2014/12/23 PHP
php对象和数组相互转换的方法
2015/05/12 PHP
浅谈使用PHP开发微信支付的流程
2015/10/04 PHP
php微信开发之音乐回复功能
2018/06/14 PHP
php代码调试利器firephp安装与使用方法分析
2018/08/21 PHP
PHP设计模式(六)桥连模式Bridge实例详解【结构型】
2020/05/02 PHP
JavaScript 学习 - 提高篇
2007/02/02 Javascript
jquery下组织javascript代码(js函数化)
2010/08/25 Javascript
原生javascript图片自动或手动切换示例附演示源码
2013/09/04 Javascript
JS加载器如何动态加载外部js文件
2016/05/26 Javascript
详解使用vue实现tab 切换操作
2017/07/03 Javascript
Vue2.0用 watch 观察 prop 变化(不触发)
2017/09/08 Javascript
angular 服务随记小结
2019/05/06 Javascript
对Layer弹窗使用及返回数据接收的实例详解
2019/09/26 Javascript
python图书管理系统
2020/04/05 Python
django缓存配置的几种方法详解
2018/07/16 Python
Django利用cookie保存用户登录信息的简单实现方法
2019/05/27 Python
基于Django统计博客文章阅读量
2019/10/29 Python
Django Admin 上传文件到七牛云的示例代码
2020/06/20 Python
Python2手动安装更新pip过程实例解析
2020/07/16 Python
详解Selenium 元素定位和WebDriver常用方法
2020/12/04 Python
利用CSS3实现毛玻璃效果示例源码
2016/09/25 HTML / CSS
HTML5中div、article、section的区别及使用介绍
2013/08/14 HTML / CSS
银河香水:Galaxy Perfume
2019/03/25 全球购物
ASP.NET中的身份验证有那些
2012/07/13 面试题
本科毕业生自我鉴定
2013/11/02 职场文书
幼儿园运动会加油词
2014/02/14 职场文书
保险内勤岗位职责
2014/04/05 职场文书
创业融资计划书
2014/04/25 职场文书
2014年四风个人对照检查及整改措施
2014/10/28 职场文书
小学一年级数学教学计划
2015/01/20 职场文书
2015年司机年终工作总结
2015/05/14 职场文书
护士爱岗敬业心得体会
2016/01/25 职场文书
【HBU】数据库第四周 单表查询
2021/04/05 SQL Server