Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ArrayList<Body> bodies = new ArrayList<Body>();
- float zoom = 1;
- void setup() {
- size(600, 600);
- bodies.add(new Body(0.38, 0.387, color(180, 180, 180), color(255, 0, 0), "Mercury"));
- bodies.add(new Body(0.95, 0.723, color(220, 220, 180), color(255, 255, 0), "Venus"));
- bodies.add(new Body(1, 1, color(20, 20, 255), color(0, 255, 0), "Earth"));
- bodies.add(new Body(0.53, 1.524, color(255, 100, 0), color(0, 255, 155), "Mars"));
- bodies.add(new Body(10.97, 5.203, color(180, 180, 0), color(0, 0, 255), "Jupiter"));
- bodies.add(new Body(9.14, 9.555, color(200, 200, 0), color(0, 0, 255), "Saturn"));
- bodies.add(new Body(4.01, 19.218, color(220, 220, 255), color(0, 0, 255), "Uranus"));
- bodies.add(new Body(3.86, 30.11, color(0, 0, 230), color(0, 0, 255), "Neptune"));
- bodies.add(new Body(109.2, 0, color(255, 255, 0), color(0, 0, 0), "Sol"));
- bodies.add(new Body(1.09, 0.011, color(230, 180, 0), color(255, 0, 0), "b"));
- bodies.add(new Body(1.06, 0.015, color(180, 180, 0), color(255, 0, 0), "c"));
- bodies.add(new Body(0.77, 0.021, color(180, 180, 0), color(255, 255, 0), "d"));
- bodies.add(new Body(0.92, 0.028, color(150, 140, 200), color(0, 255, 0), "e"));
- bodies.add(new Body(1.04, 0.037, color(150, 140, 200), color(0, 255, 0), "f"));
- bodies.add(new Body(1.13, 0.045, color(220, 255, 220), color(0, 255, 0), "g"));
- bodies.add(new Body(0.76, 0.06, color(220, 220, 180), color(0, 0, 255), "h"));
- bodies.add(new Body(12.449, 0, color(220, 20, 10), color(0, 0, 0), "Trappist-1"));
- textAlign(CENTER);
- }
- void draw() {
- background(0);
- translate(width/2, height/2);
- for (Body b : bodies) {
- b.show();
- }
- print(zoom + "\n");
- ruler();
- }
- void ruler() {
- stroke(255);
- line(0, 50, 0, height/2-100);
- text("0 AU", 0, height/2-50);
- line(7.5*.01*zoom, 50, 7.5*.01*zoom, height/2-100);
- text(".01 AU", 7.5*.01*zoom, height/2-50);
- line(7.5*.05*zoom, 50, 7.5*.05*zoom, height/2-100);
- text(".05 AU", 7.5*.05*zoom, height/2-50);
- line(7.5*.1*zoom, 50, 7.5*.1*zoom, height/2-100);
- text(".1 AU", 7.5*.1*zoom, height/2-50);
- line(7.5*.5*zoom, 50, 7.5*.5*zoom, height/2-100);
- text(".5 AU", 7.5*.5*zoom, height/2-50);
- line(7.5*zoom, 50, 7.5*zoom, height/2-100);
- text("1 AU", 7.5*zoom, height/2-50);
- line(7.5*5*zoom, 50, 7.5*5*zoom, height/2-100);
- text("5 AU", 7.5*5*zoom, height/2-50);
- line(7.5*10*zoom, 50, 7.5*10*zoom, height/2-100);
- text("10 AU", 7.5*10*zoom, height/2-50);
- }
- class Body {
- float r;
- float au;
- color orbit = color(0);
- color c = color(255);
- String name;
- Body(float r_, float au_, color c_, color orbit_, String name_) {
- r = r_ * 6.4 / 1000000/2; //input is in r's (unit of earth's radius). Convert to km (1:2000000000 scale)
- au = au_ * 15/2; //input is in AU's (unit of earth's orbital radius). Convert to km (1:2000000000 scale)
- c = c_; //Sphere Color
- orbit = orbit_; //Orbital Color
- name = name_; //name
- }
- void show() {
- noFill();
- stroke(orbit);
- ellipse(0, 0, 2*au*zoom, 2*au*zoom);
- fill(c);
- stroke(c);
- ellipse(au*zoom, 0, r*zoom, r*zoom);
- stroke(0);
- fill(255);
- text(name, au*zoom+r*zoom/2, 0);
- }
- }
- void mouseWheel(MouseEvent event) {
- if (event.getCount() > 0) {
- zoom /= 1.05;
- } else {
- zoom *= 1.05;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement