我正在用VPython创建一个虚拟的台球/台球游戏。我想让它每隔dt“time”更新位置(我用rate()来限制循环时间),而不是更快。在
我对位置的计算向前看任何潜在的碰撞0
例如:如果dt=1,我在0.25秒检测到碰撞,我会将位置提前0.25秒,计算新的速度,然后在接下来的0.75秒内检查是否有碰撞。此操作将重复,直到在当前时间跳跃中未检测到碰撞为止。我想展示物体位置的变化。(然后rate()会导致等待,直到下一次通过)
我的问题是:通过拉动像球体位置= 球体位置+球体速度*t1 ---或者--- 在检测碰撞之前,将所有的位置和速度向量转换为元组,然后返回到向量,然后进行向量运算,然后转换为元组,然后再指定新的t=t+dt位置/速度值。在
转换是必要的,因为向量是可变数据,因此将值拉到新变量并进行数学运算仍然会改变球体位置值,从而导致屏幕上的位置更新。在
从本质上讲,Vpython是在可视化地更新位置的同时让其他进程暂停,还是在数据处理尽可能快的同时运行呢?在
如果有什么需要我解释清楚的话让我解释清楚
编辑:
我意识到我可以用一个便宜的解决方案。在
>>> h=vector(5,6,2)
>>> j=h
>>> j.mag*=2
>>> j
vector(10, 12, 4)
>>> h
vector(10, 12, 4)
上面的片段显示了如果直接复制一个向量会发生什么。但是如果你在复制过程中乘以1,它会产生一个新的向量,因为从技术上讲,这个值是改变了的,但是数值上是一样的
^{pr2}$
目前没有回答
相关问题 更多 >
编程相关推荐