// Arrray of planets Planet[] planets = new Planet[8]; // planet objects for each plane in our solar system Planet mercury; Planet venus; Planet earth; Planet mars; Planet jupiter; Planet saturn; Planet uranus; Planet neptune; int earthOrbit; float scale; // Sun Sun son; // angle camera rotates around scene float angle = 0; PVector planetForce; PVector planetNetForce = new PVector(0, 0, 0); void setup() { scale = 10.0; // earthOrbit = 149598023; // assign characteristics of each planetary body to the corresponding Planet objects // Scaling is an issue. Currently the planets do not orbit correctly and are sized incorrectly // Need to scale the real data for each planet and Sun down using teh scale variable. Maybe like a 100th // the actual scale of teh universe etc. mercury = new Planet(0.3829* scale, 0.055, 0.3870976958* scale *10, 0, 0, 1.59039624); venus = new Planet(0.9499* scale, 0.815, 0.72332506693* scale*10, 0, 0, 1.17595702); earth = new Planet(1.0* scale, 1.0, 1.0* scale*10, 0, 0, 1); mars = new Planet(0.533 * scale, 0.107, 1.52367788978* scale*10, 0, 0, 0.806145064); jupiter = new Planet(11.209 * scale, 317.8, 5.20441369737* scale*10, 0, 0, 0.438885158); saturn = new Planet(9.449 * scale, 95.159, 9.58254642175* scale*10, 0, 0, 0.325050369); uranus = new Planet(9.449 * scale, 95.159, 19.2184357944* scale*10, 0, 0, 0.228341169); neptune = new Planet(3.883 * scale, 17.147, 30.0806114263* scale*10, 0, 0, 0.182337139); planets[0] = mercury; planets[1] = venus; planets[2] = earth; planets[3] = mars; planets[4] = jupiter; planets[5] = saturn; planets[6] = uranus; planets[7] = neptune; size(4000, 800, P3D); son = new Sun(); } void draw() { background(0); sphereDetail(40); lights(); translate(width/2, height/2); //rotateX(45); rotateY(angle); // show sun son.show(); for (int i = 0; i < planets.length; i++) { for (int j = 0; j< planets.length; j++) { planetForce = planets[i].planetAttract(planets[j]); planetNetForce = planetNetForce.add(planetForce); } PVector forceSun = son.attract(planets[i]); PVector force = forceSun.add(planetNetForce); //print(force); planets[i].applyForce(force); //update planets planets[i].update(); // show planet planets[i].show(); } // rotate camera angle += 0.003; }