from vpython import *
G = 6.7e-11
stella_1 = sphere(pos = vector(-5e11, 0, 0), radius = 2e10, color = color.orange)
stella_2 = sphere(pos = vector(+5e11, 0, 0), radius = 1e10, color = color.yellow)
asteroide = sphere(pos = vector(1.5e12, 0, 0), radius = 1e10, color = color.cyan, make_trail=True)
asteroide.v = vector(0, -7.5e3, 0)
stella_1.massa = 3e30
stella_2.massa = 1e30
asteroide.massa = 1e22
stella_1.p = stella_1.massa*vector(0, 3e3, 0)
stella_2.p = stella_2.massa*vector(0, -9e3, 0)
dt = 1e5
while(True):
rate(200)
r = stella_1.pos - stella_2.pos
F = (G*stella_1.massa*stella_2.massa/mag2(r))*r.hat
r1 = asteroide.pos - stella_1.pos
r2 = asteroide.pos - stella_2.pos
a = -G*stella_1.massa/mag2(r1)*r1.hat - G*stella_2.massa/mag2(r2)*r2.hat
if(mag(r1) < 2e9) or (mag(r2) < 2e9):
print("Collisione")
break
elif(mag(r1) < 8e9) or (mag(r2) < 8e9):
dt = 4e3
print("Molto vicino")
else:
dt = 1e5
stella_1.p += -F*dt
stella_2.p += +F*dt
stella_1.pos += stella_1.p/stella_1.massa*dt
stella_2.pos += stella_2.p/stella_2.massa*dt
asteroide.v += a*dt
asteroide.pos += asteroide.v*dt