# Aaron Titus # High Point University # Matter & Interactions, Problem 2.2 # Binary Stars from visual import * from __future__ import division scene.range=7e11 scene.autoscale=0 scene.width=800 scene.height=800 s1=sphere(radius=7e9, color=color.yellow, pos=vector(1.5e11,0,0)) s2=sphere(radius=7e9, color=color.red, pos=vector(-1.5e11,0,0)) s1.m=2.0e30 s2.m=10.0e30 s1.p=s1.m*vector(0,5e4,0) s2.p=-s1.p G=6.7e-11 t=0 dt=1.0e5 trail1=curve(color=s1.color) trail2=curve(color=s2.color) s1.Fnet=vector(0,0,0) s2.Fnet=vector(0,0,0) Fscale=2e10/1e27 s1.FnetVector=arrow(pos=s1.pos, axis=s1.Fnet*Fscale, color=color.blue) s2.FnetVector=arrow(pos=s2.pos, axis=s2.Fnet*Fscale, color=color.blue) pScale=2e11/s1.p.mag s1.pVector=arrow(pos=s1.pos, axis=s1.p*pScale, color=color.cyan) s2.pVector=arrow(pos=s2.pos, axis=s2.p*pScale, color=color.cyan) while 1: rate(100) rvec=s1.pos-s2.pos #vector from s2 to s1 rmag=mag(rvec) #magnitude of r rdir=rvec/rmag #unit vector from s2 to s1 Fgrav=G*s1.m*s2.m/rmag**2.0 # Fgrav=0 s2.Fnet=Fgrav*rdir s1.Fnet=-s2.Fnet s2.p=s2.p+s2.Fnet*dt s2.pos=s2.pos+s2.p/s2.m*dt s1.p=s1.p+s1.Fnet*dt s1.pos=s1.pos+s1.p/s1.m*dt trail1.append(pos=s1.pos) trail2.append(pos=s2.pos) s1.pVector.pos=s1.pos s1.pVector.axis=s1.p*pScale s2.pVector.pos=s2.pos s2.pVector.axis=s2.p*pScale s1.FnetVector.pos=s1.pos s1.FnetVector.axis=s1.Fnet*Fscale s2.FnetVector.pos=s2.pos s2.FnetVector.axis=s2.Fnet*Fscale t=t+dt # print Fgrav