在Vpython中两次旋转的问题

时间:2019-01-18 23:37:15

标签: python vector-graphics vpython

我正在尝试制作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()  

我希望动画符合我上述的动作。

0 个答案:

没有答案