Я пытаюсь создать анимацию в 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()
Я ожидаю, что анимация будет соответствовать движению, которое я описал выше.