from visual import * def get_v(radius,period): return vector(0,2*pi*radius/period,0) jupiter = sphere(pos=(5.200,0,0),color=color.green,radius=0.06,make_trail=True) mercury = sphere(pos=(0.388,0,0),color=color.blue,radius=0.06,make_trail=True) venus = sphere(pos=(0.723,0,0),color=color.yellow,radius=0.06,make_trail=True) earth = sphere(pos=(1.000,0,0),material=materials.earth,radius=0.06,make_trail=True) mars = sphere(pos=(1.523,0,0),color=color.red,radius=0.06,make_trail=True) sun = sphere(pos=(0,0,0),color=color.orange,material=materials.emissive,radius=0.2,make_trail=True) jupiter.velo=get_v(5.200,11.86) mercury.velo=get_v(0.388,0.24) venus.velo=get_v(0.723,0.62) earth.velo=get_v(1,1) mars.velo=get_v(1.523,1.88) dt=0.002 while True: rate(200) for p in [mercury,venus,earth,mars,jupiter]: r=sqrt((p.x)**2+(p.y)**2) p.velo = p.velo-vector(4*(pi**2)*p.x*dt/(r**3),4*(pi**2)*p.y*dt/(r**3),0) p.pos = p.pos+(p.velo[0]*dt,p.velo[1]*dt,0)