我正在尝试制作VPython
中的动画,该动画表示绕太阳公转的地球,并且月亮的旋转轴是太阳地线。因此,月亮绕着太阳垂直运行。
问题是,如果我依次使用两次旋转,则不会执行一次旋转,否则会得到奇怪的结果。我还尝试了矢量旋转,并在两次操作后都更新了位置,但似乎不起作用。
在这个论坛上阅读,我认为可能是因为每次轮换后我都需要使用setDuration(0)
和fill()
,但是我无法使其正常工作。我也不了解如何以及何时使用fill()
方法,以及这怎么可能导致我的问题。
from vpython import *
el = simple_sphere(pos=vector(10, 3, 0),
radius=2,
color=color.red,
make_trail=True,
trail_type='points',
interval=10,
retain=50)
dTh = 0.01
while(1 <= 10000):
# pos1 = rotate(el.pos, dTh, vecor(1,0,0)) THIS WAS THE VECTOR VERSION I TRIED
# pos2 = rotate(pos1, dTh, vector(0,1,0))
# el.pos = pos2
el.rotate(dTh, axis=vector(1.0,0), origin=vector(1,1,1)).setDuration(0)
fill()
el.rotate(dTh, axis=vector(0,1,0), origin=vector(1,1,1)).fill()
我希望动画符合我上述的动作。