/*
Copyright 2006 by Sean Luke and George Mason University
Licensed under the Academic Free License version 3.0
See the file "LICENSE" for more information
*/
package sim.app.tutorial6;
import sim.engine.*;
import sim.field.continuous.*;
import sim.util.*;
public class Tutorial6 extends SimState
{
private static final long serialVersionUID = 1;
static final int PLUTO = 9; // Furthest-out body
public Continuous2D bodies;
public Tutorial6(long seed)
{
super(seed);
bodies = new Continuous2D(DISTANCE[PLUTO],DISTANCE[PLUTO],DISTANCE[PLUTO]);
}
// distance from sun in 10^5 km
public static final double[] DISTANCE = new double[]
{0, 579, 1082, 1496, 2279, 7786, 14335, 28725, 44951, 58700};
// diameters in 10 km
public static final double[] DIAMETER = new double[]
{139200.0, 487.9, 1210.4, 1275.6, 679.4, 14298.4, 12053.6, 5111.8, 4952.8, 239.0};
// period in days
public static final double[] PERIOD = new double[]
{1 /* don't care :-) */, 88.0, 224.7, 365.2, 687.0, 4331, 10747, 30589, 59800, 90588 };
public void start()
{
super.start();
bodies = new Continuous2D(DISTANCE[PLUTO],DISTANCE[PLUTO],DISTANCE[PLUTO]);
// make the bodies -- stick them out the x axis, sweeping towards the y axis.
for(int i=0; i<10;i++)
{
Body b = new Body((2*Math.PI*DISTANCE[i]) / PERIOD[i], DISTANCE[i]);
bodies.setObjectLocation(b, new Double2D(DISTANCE[i],0));
schedule.scheduleRepeating(b);
}
}
public static void main(String[] args)
{
doLoop(Tutorial6.class, args);
System.exit(0);
}
}