orbit.py
orbit.py — text/python-source, 1 KB
Dateiinhalt
from visual import * giant = sphere() giant.pos = vector(-1e11,0,0) giant.radius = 2e10 giant.color = color.red giant.mass = 2e30 giant.p = vector(0, 0, -1e4) * giant.mass dwarf = sphere() dwarf.pos = vector(1.5e11,0,0) dwarf.radius = 1e10 dwarf.color = color.yellow dwarf.mass = 1e30 dwarf.p = -giant.p for a in [giant, dwarf]: a.orbit = curve(color=a.color, radius = 2e9) dt = 86400 i = 0 while 1: rate(600) dist = dwarf.pos - giant.pos force = 6.7e-11 * giant.mass * dwarf.mass * dist / mag(dist)**3 giant.p = giant.p + force*dt dwarf.p = dwarf.p - force*dt for a in [giant, dwarf]: a.pos = a.pos + a.p/a.mass * dt if i < 2000: a.orbit.append(pos=a.pos) i += 1