Advertisement
MrMusAddict

Visualize Trappist-1

Feb 23rd, 2017
350
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.32 KB | None | 0 0
  1. ArrayList<Body> bodies = new ArrayList<Body>();
  2.  
  3. float zoom = 1;
  4.  
  5. void setup() {
  6.   size(600, 600);
  7.  
  8.   bodies.add(new Body(0.38, 0.387, color(180, 180, 180), color(255, 0, 0), "Mercury"));
  9.   bodies.add(new Body(0.95, 0.723, color(220, 220, 180), color(255, 255, 0), "Venus"));
  10.   bodies.add(new Body(1, 1, color(20, 20, 255), color(0, 255, 0), "Earth"));
  11.   bodies.add(new Body(0.53, 1.524, color(255, 100, 0), color(0, 255, 155), "Mars"));
  12.   bodies.add(new Body(10.97, 5.203, color(180, 180, 0), color(0, 0, 255), "Jupiter"));
  13.   bodies.add(new Body(9.14, 9.555, color(200, 200, 0), color(0, 0, 255), "Saturn"));
  14.   bodies.add(new Body(4.01, 19.218, color(220, 220, 255), color(0, 0, 255), "Uranus"));
  15.   bodies.add(new Body(3.86, 30.11, color(0, 0, 230), color(0, 0, 255), "Neptune"));
  16.   bodies.add(new Body(109.2, 0, color(255, 255, 0), color(0, 0, 0), "Sol"));
  17.  
  18.   bodies.add(new Body(1.09, 0.011, color(230, 180, 0), color(255, 0, 0), "b"));
  19.   bodies.add(new Body(1.06, 0.015, color(180, 180, 0), color(255, 0, 0), "c"));
  20.   bodies.add(new Body(0.77, 0.021, color(180, 180, 0), color(255, 255, 0), "d"));
  21.   bodies.add(new Body(0.92, 0.028, color(150, 140, 200), color(0, 255, 0), "e"));
  22.   bodies.add(new Body(1.04, 0.037, color(150, 140, 200), color(0, 255, 0), "f"));
  23.   bodies.add(new Body(1.13, 0.045, color(220, 255, 220), color(0, 255, 0), "g"));
  24.   bodies.add(new Body(0.76, 0.06, color(220, 220, 180), color(0, 0, 255), "h"));
  25.   bodies.add(new Body(12.449, 0, color(220, 20, 10), color(0, 0, 0), "Trappist-1"));
  26.  
  27.   textAlign(CENTER);
  28. }
  29.  
  30.  
  31. void draw() {
  32.   background(0);
  33.   translate(width/2, height/2);
  34.   for (Body b : bodies) {
  35.     b.show();
  36.   }
  37.   print(zoom + "\n");
  38.  
  39.   ruler();
  40. }
  41.  
  42. void ruler() {
  43.   stroke(255);
  44.   line(0, 50, 0, height/2-100);
  45.   text("0 AU", 0, height/2-50);
  46.  
  47.   line(7.5*.01*zoom, 50, 7.5*.01*zoom, height/2-100);
  48.   text(".01 AU", 7.5*.01*zoom, height/2-50);
  49.  
  50.   line(7.5*.05*zoom, 50, 7.5*.05*zoom, height/2-100);
  51.   text(".05 AU", 7.5*.05*zoom, height/2-50);
  52.  
  53.   line(7.5*.1*zoom, 50, 7.5*.1*zoom, height/2-100);
  54.   text(".1 AU", 7.5*.1*zoom, height/2-50);
  55.  
  56.   line(7.5*.5*zoom, 50, 7.5*.5*zoom, height/2-100);
  57.   text(".5 AU", 7.5*.5*zoom, height/2-50);
  58.  
  59.   line(7.5*zoom, 50, 7.5*zoom, height/2-100);
  60.   text("1 AU", 7.5*zoom, height/2-50);
  61.  
  62.   line(7.5*5*zoom, 50, 7.5*5*zoom, height/2-100);
  63.   text("5 AU", 7.5*5*zoom, height/2-50);
  64.  
  65.   line(7.5*10*zoom, 50, 7.5*10*zoom, height/2-100);
  66.   text("10 AU", 7.5*10*zoom, height/2-50);
  67. }
  68.  
  69. class Body {
  70.  
  71.   float r;
  72.   float au;
  73.  
  74.   color orbit = color(0);
  75.   color c = color(255);
  76.  
  77.   String name;
  78.  
  79.   Body(float r_, float au_, color c_, color orbit_, String name_) {
  80.     r = r_ * 6.4 / 1000000/2; //input is in r's (unit of earth's radius). Convert to km (1:2000000000 scale)
  81.     au = au_ * 15/2; //input is in AU's (unit of earth's orbital radius). Convert to km (1:2000000000 scale)
  82.     c = c_; //Sphere Color
  83.     orbit = orbit_; //Orbital Color
  84.     name = name_; //name
  85.   }
  86.  
  87.   void show() {
  88.     noFill();
  89.     stroke(orbit);
  90.     ellipse(0, 0, 2*au*zoom, 2*au*zoom);
  91.     fill(c);
  92.     stroke(c);
  93.     ellipse(au*zoom, 0, r*zoom, r*zoom);
  94.     stroke(0);
  95.     fill(255);
  96.     text(name, au*zoom+r*zoom/2, 0);
  97.   }
  98. }
  99.  
  100. void mouseWheel(MouseEvent event) {
  101.   if (event.getCount() > 0) {
  102.     zoom /= 1.05;
  103.   } else {
  104.     zoom *= 1.05;
  105.   }
  106. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement