Your browser does not support the canvas tag.

previous        Show / Hide Source        Download        next
/*HALLEY'S COMET
MICHAEL MIRABILE
Move cursor left to right to change time of day and see comet. (HOURS)
Move cursor up to down to change time of life. (YEARS)
FOR BEST RESULTS: Go from top left corner to bottom right corner
*/

//void settings () 
//{
//  size(400,400);
//}

void setup () {
  size(400,400);
}

void draw() {
  background(150);
   fill(100,100,200);//bluish
  rect(0,0,400,400);
  noStroke();
  
   //(position from left, position from right, size, size)
   
  //SKY BASE RECT
  //Black Sky
  fill(50,50,50,mouseX );//darkish
  rect(0,0,400,400);
  
  //Stars
  fill(250,250,250,mouseX/2);//white
 ellipse(15,10,5,5);
 ellipse(10,110,5,5);
 ellipse(10,160,5,5);
 ellipse(10,210,sin(frameCount/7)*5,sin(frameCount/7)*7.5);
 ellipse(30,130,5,5);
 ellipse(40,220,5,5);
 ellipse(50,230,5,5);
 ellipse(60,300,5,5);
 ellipse(10,310,sin(frameCount/7)*5,sin(frameCount/7)*7.5);
 ellipse(10,270,5,5);
 ellipse(130,10,5,5);
 ellipse(120,10,5,5);
 ellipse(100,230,5,5);
 ellipse(190,10,5,5);
 ellipse(230,10,5,5);
 ellipse(300,20,5,5);
 ellipse(330,10,sin(frameCount/7)*5,sin(frameCount/7)*7.5);
 ellipse(50,20,5,5);
 ellipse(50,30,5,5);
 ellipse(50,90,sin(frameCount/7)*5,sin(frameCount/7)*7.5);
 ellipse(130,50,5,5);
 ellipse(180,50,5,5);
 ellipse(230,50,5,5);
 ellipse(250,190,5,5);
 ellipse(250,170,5,5);
 ellipse(270,250,5,5);
 ellipse(320,50,5,5);
 ellipse(300,170,5,5);
 ellipse(370,150,5,5);
 ellipse(350,70,5,5);
 ellipse(100,80,5,5);
 ellipse(140,100,sin(frameCount/7)*5,sin(frameCount/7)*7.5);
 ellipse(200,130,5,5);
 ellipse(230,100,5,5);
 ellipse(300,120,5,5);
 ellipse(370,100,sin(frameCount/7)*5,sin(frameCount/7)*7.5);
 ellipse(100,120,5,5);
 ellipse(150,100,5,5);
 ellipse(150,150,5,5);
 ellipse(150,200,5,5);
 ellipse(200,150,5,5);
 ellipse(200,200,5,5);
 
  noStroke();
   
    //COMET
  stroke(255);
  strokeWeight(5);
  //Main
   fill(155,150,155, mouseX);
   line(135, 110, 165, 120);
   line(135, 90, 165, 120);
   line(100, 75, 165, 120);
   //Trail
    strokeWeight(0);
   fill(255,255,255, 100);
   line(100, 90, 165, 120);
   line(100, 70, 165, 120);
   line(70, 50, 165, 120);
   noStroke();
   
  //SUN MESH
  //Outer Glow
    fill(200,200,200,75);//whiteish
  ellipse(mouseX + 120,100,135,135);
  //Main Circle
  fill(200,200,10);//yellow
  ellipse(mouseX + 120,100,110,110);
  //Sun Rays
    rect(mouseX + 170, 100, 25,10);
    rect(mouseX + 50, 100, 25,10);
    rect(mouseX + 120, 150, 10,25);
    rect(mouseX + 115, 25, 10,25);
        fill(200,200,200,75);//whiteish
        //Inner Glow
  ellipse(mouseX + 120,100,75,75);
          fill(200,200,200,75);//whiteish
  ellipse(mouseX + 120,100,25,25);
  
    //MOON MESH
    //Outer Glow
     fill(250,250,250,50);//white
  ellipse(mouseX - 320,100,125,125);
  //Main Moon
  fill(250,250,250);//white
  ellipse(mouseX - 320,100,100,100);
  //Craters
  stroke(1);
  fill(150,150,150);//greyish
  ellipse(mouseX - 295,75,30,30);
  ellipse(mouseX - 345,125,20,20);
  ellipse(mouseX - 345,85,25,25);
  ellipse(mouseX - 300,115,40,40);
  noStroke();
     //Inner Glow
     fill(175,175,175,50);//greyish
       ellipse(mouseX - 320,100,75,75);
  
  
   //GROUND BASE ELLIPSE
  stroke(0);
  fill(50,250,50);//green
  ellipse(200,375,600,300);
  
  //SHRUB
  noStroke();
  fill(50,200,50);//greenish
  ellipse(100,225,75,75);
  ellipse(75,250,75,75);
  ellipse(125,250,75,75);
  //Berries
  fill(150,50,50,mouseY);//reddish
  ellipse(100,250,10,10);
  ellipse(80,220,10,10);
  ellipse(120,270,10,10);
  ellipse(110,230,10,10);
  ellipse(120,210,10,10);
  
    //TREE BASE MESH
  fill(100,50,0);//brown
  rect(300,220,30,mouseY/3,5);
  fill(50,200,50);//greenish
  ellipse(285,225,mouseY/5+ 20,mouseY/5 + 20);
  ellipse(310,225,mouseY/5 + 20,mouseY/5 + 20);
  ellipse(330,245,mouseY/5 + 20,mouseY/5 + 20);
  fill(100,50,0);//brown
  //ellipse(315,300,30,30);
  //Apples  
  fill(250,100,50,mouseY);//reddish
  ellipse(290,205,10,10);
  ellipse(300,220,10,10);
  ellipse(320,225,10,10);
  ellipse(280,235,10,10);
  ellipse(350,235,10,10);
  
  //PICNIC TOWEL
  fill(175,175,175);//monocolor
  rect(135,300,125,75);
  fill(25,25,25);//dark
  rect(135,300,10,75);
  rect(195,300,10,75);
  rect(260,300,10,75);
  
  rect(135,300,125,10);
  rect(135,365,125,10);
  rect(135,330,125,5);
  rect(135,315,125,5);
  rect(135,350,125,5);
  
  
  //Basket
  //Fruits in Basket
  fill(50,50,100);
  ellipse(220,340,10,10);
  ellipse(220,340,10,10);
  ellipse(220,335,10,10);
  
  fill(150,100,100);//brownish
  rect(210,340,25,25,5);
  fill(50,50,50);
  rect(210,350,30,3);
  
  //BOY/MAN
  //Feet
  rect(110,390,10,10);
  //Hands
  fill(200,200,175);//palish
  ellipse(115,360,10,10);
  ellipse(135,360,10,10);
  //Body
  fill(70,70,70);//dark grey
  stroke(1);
  rect(110,340,10,20);
  noStroke();
  rect(115,340,20,40);
  rect(130,340,10,20);
  //Legs
  fill(100,100,200);//bluish
  rect(125,370,10,30);
  rect(115,370,10,30);
  //Head
  fill(200,200,175);//palish
  ellipse(125,330,30,30);
  fill(200,200,200,mouseY);//grey
  ellipse(125,330,30,30);
  fill(150,150,200);//light blue
   rect(120,310,20,20);
  ellipse(125,320,30,20);
  //Wrinkles
  stroke(0,mouseY);
  strokeWeight(2);
  fill(0,0,0,mouseY);
  point(120,340);
  point(130,330);
  point(115,330);
  noStroke();
     //OVERALL SHADE
    fill(0,0,0,mouseX/3);//dark
  rect(0,0,400,400);
}