Un corpo (pianeta, cometa, …) si trova a una certa distanza e ha una certa velocità rispetto a una stella

from vpython import *
G = 1 # Semplificazione
m = 1 # ...
M = 100*m # 100 volte
x0 = 10
y0 = 0
v0x = 0
v0y = 2
stella = sphere(color = color.yellow)
cometa = sphere(color = color.cyan, pos = vector(x0, y0, 0), radius = 0.25, make_trail = True)
cometa.v = vector(v0x, v0y, 0)
dt = 0.01
while(True):
rate(100)
r = cometa.pos
r2 = mag2(r)
rv = r.hat
F = -(G*M*m/r2) * rv
a = F/m
cometa.v += a * dt
cometa.pos += cometa.v * dt
Osserva l’andamento della magnitudo della velocità

from vpython import *
G = 1 # Semplificazione
m = 1 # ...
M = 100*m # 100 volte
x0 = 10
y0 = 0
v0x = 0
v0y = 2
stella = sphere(color = color.yellow)
cometa = sphere(color = color.cyan, pos = vector(x0, y0, 0), radius = 0.25, make_trail = True)
cometa.v = vector(v0x, v0y, 0)
graph(fast = False, xtitle = "t", title = "Velocità")
grafico_v = gcurve(color = color.blue, width = 2)
t = 0
dt = 0.01
while(t < 20):
rate(100)
r = cometa.pos
r2 = mag2(r)
rv = r.hat
F = -(G*M*m/r2) * rv
a = F/m
cometa.v += a * dt
cometa.pos += cometa.v * dt
grafico_v.plot(t, mag(cometa.v))
t += dt