http://www.vpython.org/index-ch.html

 
主页

文档

下载:
   Windows
   Macintosh
   Linux

新VPython 6

修改日志

VPython百科

用户论坛

提供程序

开发人员

Python web 站点

 

VPython
大众的3D编程

 

VPython可以方便的创建3D显示和动画, 不需要丰富的编程经验。因为它基于Python, 可以为有经验的编程人员和研究人员提供更多。

想有一个快速的了解,请看YouTube上的视频:

三维物体

变量赋值

开始循环

循环和动画

比例因子

调试语法错误

一表

二表

如何开始使用VPython

新建一个Python 或者 VPython?  GlowScript VPython 是一个很好的起点:

  • glowscript.org 网站上注册一个账户.

    • 你应该注意到“You are signed in as <yourusername> and your programs are here."这句话 并点击"here”.
    • 然后点击 “Create New Program”.  命名为 “box”.  在 
      Glowscript 2.1 VPython
      这一行下边输入:
      box()
  • 然后点击 “Run this program”.  你会看到在黑色的背景上有一个白色的盒子.
    • 使用鼠标右键(或者CTRL+鼠标左键) 来旋转摄像头的角度来观测各个角度的效果.
    • 通过鼠标两个键或者ALT键或者滚轮来放大或者缩小. 对于触摸屏:Touch screen:  触摸或者两个手指旋转; 两指渐进/渐远来放大缩小.
    • 点击帮助按钮来查询哪种图像模型时可行的.

有经验的 Python / VPython 开发人员或用户?  Jupyter VPython 采用流行的 IPython/Jupyter 专业编程环境:

  • 安装 Continuum Anaconda (或者Enthought Canopy) Python 环境.  我们推荐使用Anaconda以及Python 3.x, 特别是您已经在电脑上安装了“经典”的 VPython / Python 2.7 (Canopy 使用的是Python 2.7).  如果您是一个专业的Python用户, 您可以在Python环境下安装 IPython 和 Jupyter 模组; 参见: jupyter.org.
  • 在Power Shell 或 Command Prompt (Windows) 或 Terminal (Mac / Linux) 运行下面这条命令:
    pip install vpython

这个模块的更新很频繁,您可以使用下面的命令更新成为最新的版本: 
pip install vpython --upgrade

创建一个 Jupyter记事本:有两种方式来创建Jupyter记事本. 在终端运行"jupyter notebook". 或者(取决于您所使用的操作系统), 双击 "Jupyter Notebook" 这个图标,这个图标以Anaconda相关的工具显示. 右边的下拉键头有创建新记事本的 按钮, 如果你选择了 "VPython" 你将会得到以下输入 (你可以通过 Kernel > Change kernel的按钮来改变记事本类型):
from __future__ import division, print_function
from math import *

  • 创建一个测试例程: 这个小程序将在黑色背景中创建一个白色的盒子:
    from vpython import *
    box()

    VPython 程序的运行: 在第一个单元格中单击(包含 vpython import 声明), 然后点击 run 按钮, 一个立体感的向右的三角箭头. 目前,重新运行 VPython 程序需要你单击红色圆按钮来重启内核,然后点击红色高亮按钮,然后点击第一个单元格,最后点击run按钮. 这个过程在未来定制版的Jupyter notebook中将会趋于简单化 .

  • 旋转和放大视角与 GlowScript VPython相同; 见上.
  • 文档: 在 GlowScript VPython Help 寻找帮助文档.GlowScript 对象唯一没有实现的就是挤压以及三维文字 , 通过键盘的互动仍然不可行,等待Jupyter notebook中一个键盘输入和程序执行之间可行的关系.
  • 示例程序: 这个 压缩文件 打包了一堆的示例程序, 这个文件包含了在GlowScript VPython上可以使用的控件(button, radio button, checkbox, slider, and menu).
  • 远程运行示例程序: 这个 里有一些示例程序, 他可以让你在没有Python环境的电脑或者移动设备上运行Jupyter VPython. 这是一个这个包机制的一个示例 . 由于这个包被很多人共享使用,所以其性能时刻都在变化着.
  • 使用conda 来安装 VPython: Matt Craig 在Anaconda上提供了另外一种方式来安装Vpython .对于那些没有安装经典 VPython Anaconda 包的用户,安装命令: "conda install -c vpython vpython". 得到最新版本: "conda update -c vpython vpython".
  • 对于那些已经安装了经典VPython 的用户,想通过保持它的新环境来创建新Vpython: "conda create -c vpython -n vpython_jup_env vpython python". 在创建了新的环境之后您需要激活它来尝试新的VPython.

GlowScript VPython 、 Jupyter VPython 与 Classic VPython的不同点

  • 向量必须表示为 vector(x,y,z) 或 vec(x,y,z), 不能用 (x,y,z).
  • 名字 display 已经更改为 canvas (由于技术原因).
  • 名字 gdisplay 已经更改为 graph.
  • curve 对象和 points 对象有了新的一套方法.

glowscript.org 网站的VPython Help是一个从Classic到 GlowScript 的转换程序; 在处理主要区别时它虽然不完美但是很有用.

下载 Classic VPython:

  • 点击当前页面的下载选项, 根据提示继续.  旋转和缩放相机视角的操作与GlowScript VPython 完全相同,除非该设备即不支持鼠标又不支持触摸.
  • Classic VPython 仍然可以使用, 但是不会在更新.

更多关于Vpython和未来发展的信息

  • 这是一个VPython对于未来发展规划的一个描述 .

在该页面左边的顶部有对Classic VPython 可用选项的描述:

文档: 描述, 教程, 和详细的说明文档

下载: 免费下载 WindowsMacintosh, 以及 Linux

VPython 6新功能: 新的鼠标/键盘操作; 本地按钮 , 滑块, 等等.

变更日志: 变更历史

用户论坛. (知道2013年2月份, 激活邮件列表可以在 https://sourceforge.net/mailarchive/forum.php?forum_name=visualpython-users. 中找到,请不要改写列表,而是在 用户论坛发帖.)

提供程序: 用户贡献有用有趣的程序.

开发者: 对Python未来的发展感兴趣的

Python web网站: Python 编程语言, 基于 VPython

其他:

trinket.io 这个工具很容易在自己的网页上添加和编辑GlowScript VPython. Rhett Allain 在Wired 杂志的物理博客页面展示了 这个例子 .

Jay Wang 用各种有趣的Vpython做了一个 照片 和 电影 的画廊.

Ruth Chabay 和 Bruce Sherwood 关于 VPython历史的博客采访视频.

一个关于 GlowScript VPython 和 Jupyter VPython之间关系的说明

VIDLE: 空闲替代于修复几个重大的问题

物质 & 互相作用: 使用VPython引导物理

VPython用在一些高级教材中:

Computational Physics:Problem Solving with Python, Rubin H. Landau, Manuel J. Páez, Cristian Bordeianu (2015)

Computational Physics with Python Mark Newman (2012)

An Introduction to Statistical Mechanics and Thermodynamics Robert H. Swendsen (2012)

Equilibrium Statistical Physics With Computer Simulations in Python Leonard M. Sander (2013)

Soil Physics with Python: Transport in the Soil-Plant-Atmosphere System
Marco Bittelli, Gaylon S. Campbell, and Fausto Tomei (2015)

Computational Modeling and Visualization of Physical Systems with Python Jay Wang (2016)

如果你没有找到你想要的或者告诉我们你是如何使用VPython的,请写信发往[email protected][email protected][email protected].

罗马尼亚版本的翻译 由by Jessica Parker提供

爱沙尼亚版本的翻译 由 Sonja Kulmala提供

印尼语版本的翻译 由 Jordan Silaen提供

较早版本的波兰语翻译由Milana Sharapovan 提供

VPython 的发展部分是由美国国家科学基金会的支持

 
时间: 2024-11-12 10:22:25

http://www.vpython.org/index-ch.html的相关文章

android之计算器

xml布局: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     android:layout_width="match_parent"     android:layout_height="match_parent&qu

网络 http服务器-v3-libevent版本

一.libevent API简介         1.申请  事件库(维护多个事件句柄的结构体):                struct event_base *base = event_base_new();           2.申请 事件句柄,句柄的初始化,添加句柄到事件库             //创建并绑定一个event                 struct event *listen_event;            //参数:event_base, 监听的fd,

网络 http服务器-v2-epoll版本

epoll的基本接口与建立tcp连接的流程 查看: 网络 使用epoll 实现TCP服务器 - 初出茅庐小菜鸟 - 51CTO技术博客 http://shaungqiran.blog.51cto.com/10532904/1784410 重点:         epoll 遵循的是多路复用的 I/O模型.其内部只实现了对 关注I/O事件的监听,而没有实现具体的操作.因此我们必须自己选择恰当的时机去 读  或者 写.而对于内核而言,对一个socket 文件描述符 的读 .写 事件的监听 是分离的(

南阳 oj 重建二叉树 题目756

 #include <stdio.h> #include <malloc.h> #include <string.h> //二叉链表 typedef struct node{ char data;//节点数据元素 struct node *lchild;//指向左孩子 struct node *rchild;//指向右孩子 }BiNode,*BTree; //利用后序和中序建立二叉树 void GetPreOrder(char *last,char *mid,BTr

[BZOJ 1014] [JSOI2008] 火星人prefix 【Splay + Hash】

题目链接:BZOJ - 1014 题目分析 求两个串的 LCP ,一种常见的方法就是 二分+Hash,对于一个二分的长度 l,如果两个串的长度为 l 的前缀的Hash相等,就认为他们相等. 这里有修改字符和插入字符的操作,所以用 Splay 来维护串的 Hash 值. 一个节点的值就是它的子树表示的字串的 Hash 值. 使用 unsigned long long 然后自然溢出就不需要 mod 了,速度会快很多. 代码 #include <iostream> #include <cstd

IDF 实验室 初探乾坤

简单编程-字符统计 速度要快,用AutoHotKey,语法不太适应 ^d::StringCaseSense, Onw := o := l := d := y := -1Sleep 100strArr := StrSplit(ClipBoard)  ; 分离字符for index, ch in strArr{  if ch = w  ; w 是字符串不是变量名    w := w + 1  if ch = o    o := o + 1  if ch = l    l := l + 1  if c

十进制转换成其它进制的通用写法(查表法)

 //十进制转换成其它进制的通用写法(查表法)  class Transform  { public static void main(String[] args) {    toHex3(60);    System.out.println();    toOctal2(20);    System.out.println();    toBinary2(6); }  public static void toAny(int num,int base,int offSet)  {   char

Tree

Tree 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 Little Valentine liked playing with binary trees very much. Her favorite game was constructing randomly looking binary trees with capital letters in the nodes. This is an example of one of her creations: D

【词法分析器 】 编译原理作业

自己写的版本: 问题: 1:考虑到由于是嵌套接收,浮点型感觉少麻烦,因为还要判断是否两个小数点等,古没有实现 2:对于一些特殊符号,如三元运算符,格式控制符%d等分析不到位 3:类别应该分的更细,否则用唯一的symbol(sym)标识的话无法进行后续的语法分析 4:没有用文件指针,数据输入要在控制台,不利于交互 #include <iostream> #include <string.h> #include <cstdio> using namespace std; i

String中的方法

这里只是总结一些我觉得有用可能会用到的: 详细api:http://tool.oschina.net/apidocs/apidoc?api=jdk-zh 1.str.getChars(int strBegin,  int strEnd,  char[] dst,  int  dstBegin):将str的一部分(下标从strBegin到strEnd-1)复制到字符数组dst从dstBegin开始到des[dstBegin+(复制的长度)]将会覆盖原来的字符..注意控制下标.. String s1