VPython需要多长时间来更新对象的位置

时间:2014-03-08 20:31:33

标签: python vpython

我正在使用VPython创建虚拟游泳池/台球游戏。我想让它每隔dt更新一次“时间”(我使用rate()来限制循环时间),而不是更快。

我对位置的计算预测任何潜在的碰撞0

例如:如果dt = 1,并且我在.25s处检测到碰撞,我将位置提前0.25秒,计算新的速度,然后在接下来的0.75秒内检查碰撞。重复此过程,直到在当前时间跳转中未检测到碰撞。然后我想展示这些物体位置的变化。 (然后rate()导致等到下一次通过)

我的问题是:通过拉动诸如sphere.position = sphere.position + sphere.velocity * t1之类的东西来进行矢量数学运算会更快吗? - -要么 - - 在检测碰撞之前,将所有位置和速度向量更改为元组并返回向量,然后进行向量数学运算,然后在分配新的t = t + dt位置/速度值之前转换为元组然后向量。

转换是必要的,因为向量是可变数据,因此将值拉到新变量并进行数学运算仍然会更改sphere.position值,从而导致位置在屏幕上更新。

基本上,Vpython是否会在视觉上更新位置时将其他进程置于保持状态,或者尽可能快地运行,而数字会尽可能快地处理?

如果我需要更清楚地解释一下,请告诉我

编辑:

意识到我可以使用廉价的解决方案。

>>> h=vector(5,6,2)
>>> j=h
>>> j.mag*=2
>>> j
vector(10, 12, 4)
>>> h
vector(10, 12, 4)

上面的部分显示了直接复制矢量会发生什么。但是如果你在复制过程中乘以1,它就会产生一个新的向量,因为从技术上讲,这个值已经改变了,但是在数值上它是相同的

>>> k=h*1
>>> k
vector(10, 12, 4)
>>> k*=2
>>> k
vector(20, 24, 8)
>>> h
vector(10, 12, 4)

0 个答案:

没有答案