import java.awt.*; import java.applet.*; import java.awt.event.*; public class Gravity extends SimulationApplet { static final double gravity=2e6; static final double viscosity=1; Star[] star=new Star[2]; Star seized; double ox,oy; public void init() { super.init(); star[0]=new Star(0,0,0,1.8,50,1,getImage("earth.jpg")); star[1]=new Star(100,0,0,-150,14,0.012,getImage("moon.jpg")); } private Image getImage(String name) { return getToolkit().getImage(getClass().getResource(name)); } public void mousePressed(int x,int y) { for (int i=0;i0) dw=0; } else dw=dt*gravity/(dr*dr); u+=dw*dx*star.m; v+=dw*dy*star.m; star.u+=-dw*dx*m; star.v+=-dw*dy*m; } public void bound() { if ((xwidth-r && u>0)) u*=-0.9; if ((yheight-r && v>0)) v*=-0.9; } public void decay(double dt) { u+=-dt*viscosity*u; v+=-dt*viscosity*v; } public void move(double dt) { x+=dt*u; y+=dt*v; } public boolean contains(double x,double y) { double dx=this.x-x; double dy=this.y-y; return dx*dx+dy*dy