dancing planets

Idea:

At first, I wanted to make a galaxy portrait where most of the screen would consist of stars of different shapes and sizes. But, then I realized in order to do that with oop, every star would be an individual object and I was not sure how I would make the program construct objects by itself. Since, for instance, it is impractical to make 100 objects to display 100 stars. So, instead,  I decided to make a portrait of the solar system. I made a class where I could use to make any celestial object (planet, meteor, star, etc.). The class was quite simple so I added the random generators to give different y values for the planets; planets do not orbit at the same rate so it made sense. Every time the user runs the program, the location of the planets will change. After I was done with the class and the planets, I still needed the stars in the background, so I tried again with stars. However, this time I used two for loops, the Perlin noise function, and a random generator to make the stars spin around and I really liked how they turned out. But, they did not quite match the static planets so I thought I’d make the planets move. After doing so, the planets looked like they were vibrating. I was listening to a song at that time and they vibrated with the music as if they were dancing to it. So, I called it a day to the dancing planets portrait.

class celestial {
  
  float y;


   celestial(){

     y = random(height/3, height/2);
     
  
}

 //void color(){
 
 //   fill(r, g, b);

 // } 

 //void size(){
 
 //   ellipse(xUnique, yUnique, radius, radius);

 // }

  void shape (float r, float g, float b, float radius, float x){
  
  fill(r, g, b);
  ellipse(x, y, radius, radius);
  
  }
 

}

 

celestial sun;
celestial mercury;
celestial venus;
celestial earth;
celestial mars;
celestial jupiter;
celestial saturn;
celestial uranus;
celestial neptune;



int sunSize;
int xSun;
float xStar;
float yStar;
void setup() {

  size (1000, 1000);
  
  sun = new celestial();
  mercury = new celestial();
  venus = new celestial();
  earth = new celestial();
  mars = new celestial();
  jupiter = new celestial();
  saturn = new celestial();
  uranus = new celestial();
  neptune = new celestial();
  
  
  sunSize = 600;
  xSun = -40;
  xStar = random(width);
  yStar = random(height);
}


void draw(){

  background(0, 17, 46);
  
  // stars 
    stroke (245, 237, 24);
  for (float i = noise(width); i < width; i = i+random(width/2)) {
    for(float j = noise(height); j < height; j = j+random(height/2)){
    
      line(i, j, i+2, j+2);
    }
} 


// plants
  noStroke();
  
  for (float i = noise(width); i < width/200; i = i+random(width/4)){
    sun.shape(250, 232, 92, sunSize, xSun-70+i);
    mercury.shape(224, 179, 72, sunSize/40, xSun+sunSize/2-50+i);
    venus.shape(214, 130, 41, sunSize/35, xSun+sunSize/2+i);
    earth.shape(58, 161, 199, sunSize/25, xSun+sunSize/2+90+i);
    mars.shape(191, 76, 38, sunSize/30, xSun+sunSize/2+150+i);
    jupiter.shape(145, 128, 71, sunSize/8, xSun+sunSize/2+250+i);
    saturn.shape(191, 185, 117, sunSize/10, xSun+sunSize/2+350+i);
    uranus.shape(22, 219, 216,sunSize/14, xSun+sunSize/2+475+i);
    neptune.shape(28, 53, 138, sunSize/19, xSun+sunSize/2+550+i);
  }
  

}

 

I used this picture for reference (idk why it’s so compressed here):

 

Here are the final results (the music is not from the program;-;):

 

Leave a Reply