我正在练习我的物理编码,我对以下问题有点困惑:
“使用视觉包提供的设施,创建一个太阳系的动画,显示......太阳和行星作为球体在适当的位置,大小与其实际大小成比例......和行星的运动当他们围绕太阳移动时(通过使行星的球体移动)。“
提供了一个表格,给出了6个最里面的行星和太阳的半径,以及行星轨道的半径和轨道的周期(近似圆形)。
我能够通过创建一些具有表格中给出的值的数组(加上选择一个常数以使行星在给定比例中可见)并创建一个球体数组来完成第一部分。
这是我被挂断的动作部分。我可以让所有的行星同时以相同的角速度旋转。或者我可以使所有的行星以不同的速度旋转(与给定的周期成比例),但它一次只能进行一次。有没有办法让动画在VPython中同时发生?我使用的是VPython 6.11和Python 2.7.13。下面的代码(这是以不同的速率顺序运行它们的版本)。
#Orbital Motion
for frame in range(1000):
for n in range(6):
theta = period[n] * frame
rate(60)
x = r[n]*cos(theta)
y = r[n]*sin(theta)
s[n].pos = [x,y]
知道了!对于任何未来的读者,我的最后一个代码现在看起来像:
{{1}}
答案 0 :(得分:0)
这样的事情:
for frame in range(1000):
for n in range(6):
theta = angular_speed[n] * frame
...