我正在尝试在jupyter笔记本中重写一些vpython脚本。到目前为止,我还没有遇到很多问题,但我尝试重写的最后一个问题变得非常慢。它在VIDLE中运行得非常快。我在Python3.5.0和木星4.1.0中使用sierraOS。
代码创建一些对象,然后在while循环中更改它们的位置。最初,循环有visual.rate(5000),但我尝试将其减少到50,但没有效果。我还尝试将对象的数量减少到只有两个,但仍然工作得很慢。下面是我最简单的代码版本:
from vpython import scene, sphere, color, curve, arrow, mag, vector, rate,canvas
scene = canvas(width=800, height=600)
obj0 = sphere(pos=vector(0,0,0), radius=5e11)
obj1 = sphere(pos=vector(5e12,0,0), radius=5e11)
trail1= curve()
#some initial value
G = 6.7E-11
obj0.mass = 2.0E30
obj0.momentum = vector(0,0,0)
obj1.mass = 1.0E26
obj1.momentum = vector(0,0,0)
dt=200000.
CrashFlag=0
while(CrashFlag==0):
rate(1000)
obj1.force= -G*(obj0.mass*obj1.mass*obj1.pos)/(mag(obj1.pos)**3)
obj1.momentum = obj1.momentum+ dt*(obj1.force)
obj1.pos = obj1.pos + dt*obj1.momentum/obj1.mass
trail1.append(pos=obj1.pos)
if (mag(obj1.pos)<2.e11) :
CrashFlag=1你能在木星笔记本上找出会导致这个速度特别慢的东西吗,或者建议什么方法来绕过它?否则,是否有可能在VIDLE中输出模拟,而不是在木星笔记本中内联(而代码仍将从木星笔记本中运行)?
发布于 2017-06-22 19:37:08
现在可以从空闲运行vpython模块。VPython 7检测到你没有在木星笔记本上运行,并与浏览器建立了自己的通信,在某些情况下,这种通信似乎比木星的更快。然而,我不知道这对你的情况是否有影响。VIDLE (或空闲)不能输出3D动画。
我将在VPython论坛上宣传一个更好的提出VPython问题的地方
https://groups.google.com/forum/?fromgroups&hl=en#!forum/vpython-users
https://stackoverflow.com/questions/41388225
复制相似问题