class Planet { float radius; float angle; float distance; float orbitSpeed; Planet[] planets; Planet(float r, float d, float o) { radius = r; angle = random(TWO_PI); distance = d; orbitSpeed = o; } void orbit() { angle = angle + orbitSpeed; if (planets != null) { for (int i = 0; i < planets.length; i++) { planets[i].orbit(); } } } void spawnBodies(int total) { planets = new Planet[total]; for (int i = 0; i < planets.length; i++) { float r = radius * 0.5; float d = random(100, 200); float o = random(0.01, 0.1); planets[i] = new Planet(r, d, o); } } void show() { pushMatrix(); rotate(angle); translate(distance, 0); fill(255, 100); ellipse(0, 0, radius*2, radius*2); if (planets != null) { for (int i = 0; i < planets.length; i++) { planets[i].show(); } } popMatrix(); } }