Jupyter笔记本的vpython

vpython的Python项目详细描述


vpython

此软件包允许用户使用glowscript在浏览器中运行vpython vpython api,在https://www.glowscript.org的帮助中记录。如果代码是 在jupyter笔记本的一个单元中,3d场景出现在jupyter笔记本中。 如果代码是在笔记本外部(例如从命令行)启动的,则 浏览器窗口将打开,显示场景。

vpython使得创建可导航的实时三维动画变得异常简单。 单行程序“sphere()”生成具有适当照明的三维球体 相机的位置使场景充满视图。它也 激活鼠标交互以缩放和旋转相机视图。这个 2014年5月,john coady开始实施vpython。露丝·夏贝, 马特·克雷格和布鲁斯·舍伍德正在协助其进一步发展。

安装

有关如何安装vpython的详细说明,请参见https://vpython.org,在这里您还可以找到指向vpython论坛的链接,该论坛是报告问题和请求帮助的好地方。

简要说明:

  • 如果使用anaconda python distribution,请按如下方式安装:conda install -c vpython vpython
  • 如果使用任何其他python发行版,请按如下方式安装:pip install vpython

示例程序

下面是一个简单的示例:

fromvpythonimport*sphere()

这将创建一个包含三维球体的画布,使用鼠标和触摸 可用于缩放和旋转相机的控件:

Right button drag or Ctrl-drag to rotate "camera" to view scene.
To zoom, drag with middle button or Alt/Option depressed, or use scroll wheel.
     On a two-button mouse, middle is left + right.
Shift-drag to pan left/right and up/down.
Touch screen: pinch/extend to zoom, swipe or two-finger rotate.

当前,要在jupyter笔记本中重新运行vpython程序,您需要单击圆形箭头图标以“重新启动内核”,然后单击红色突出显示的按钮,然后单击第一个单元格,然后单击运行图标。或者,如果在程序开始时插入“scene=canvas()”,则可以在不重新启动内核的情况下重新运行程序。

运行vpython程序示例:Binder

vpython构建状态(用于vpython开发人员)

Build StatusBuild status

使用源代码

下面是软件体系结构的概述:

https://vpython.org/contents/VPythonArchitecture.pdf

vpython模块使用glowscript库(vpython/vpython_libraries/glow.min.js)。glowscript存储库在这里:

https://github.com/vpython/glowscript

在glowscript存储库的docs文件夹中,glowscriptoverview.txt提供了有关glowscript体系结构的更多详细信息。

以下是有关如何在本地运行glowscript vpython的信息,这使对glowscript库的测试更改成为可能:

https://www.glowscript.org/docs/GlowScriptDocs/local.html

如果执行build_original_no_overload.py,并将语句“if true:”更改为“if false”,则会在forinstalledpython文件夹中生成一个未缩小的glow.min.js,可以将其复制到site packages/vpython/vpython_库中,并通过在(例如)idle或spyder中运行测试进行测试。(在jupyter笔记本或jupyterlab中运行需要额外的摆弄。)

请注意,在site packages/vpython/vpython_库中,glowcomm.html由idle或spyder等启动程序使用;glowcomm.js与jupyter notebook一起使用(jupyterlab中使用了修改版本)。

在glowscript代码或glowcomm.html的javascript部分中放置console.log(…..)语句在调试中很有用。您可能还需要将调试语句放入site packages/vpython/vpython.py中。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何启动aicas许可证提供商?用jamaicaVM调用文件?   java边框布局程序未按预期完成   java如何在Selenium webdriver中刷新页面时保留输入字符串?   java对Spring如何使用AOP和代理处理事务性行为表示怀疑?   在AIX7中,Java启动的性能非常慢。1.   在Java中基于所需长度的Concat输入数组   java如何在安卓 studio中使用刷新令牌?   多线程是Java线程id在多个线程池中唯一的吗?   java如何在父类中指定类型的情况下,在Jackson中不使用type属性使子类反序列化   使用BufferedReader读取多行整数时发生java错误   java Flyway H2数据库创建问题   c#检查位置是否在矩形周界内的有效方法?