Your browser does not support the canvas tag.

previous        Show / Hide Source        Download        next
//Kaicheng Li (KC)
//991237116

void setup()
{


  //window size
  size(400, 400);
}


void draw()
{
  //background setting
  colorMode(RGB);
  noStroke();


  //table
  rectMode(CORNERS);
  fill(220, 123, 72);
  rect(0, 0, 400, 400);
  fill(202, 104, 60);
  quad(20, 60, 80, 70, 120, 17, 220, 32);
  quad(90, 93, 237, 78, 323, 66, 382, 77);
  quad(150, 333, 120, 163, 223, 232, 280, 367);

  //book(diary) outlook

  fill(233);
  rect(60, 120, 320, 340);
  ellipseMode(CORNERS);
  ellipse(60, 110, 190, 130);
  ellipse(190, 110, 320, 130);
  fill(220, 123, 72);
  ellipse(60, 330, 190, 350);
  ellipse(190, 330, 320, 350);


  //book texture

  //leftside lines
  stroke(78, 161, 246, 150);
  strokeWeight(3);
  line(70, 170, 170, 170);
  line(70, 200, 170, 200);
  line(70, 230, 170, 230);
  line(70, 260, 170, 260);
  line(70, 290, 170, 290);

  //rightside lines 
  line(210, 170, 300, 170);
  line(210, 200, 300, 200);
  line(210, 230, 300, 230);
  line(210, 260, 300, 260);
  line(210, 290, 300, 290);

  //words on book(happy)
  stroke(0);
  line(100, 150, 100, 170);
  line(120, 150, 120, 170);
  line(100, 160, 120, 160);

  ellipseMode(CENTER);
  noFill();
  ellipse(110, 190, 17, 17);
  line(117, 187, 125, 200);


  ellipse(110, 215, 15, 15);
  line(100, 210, 100, 230);

  ellipse(110, 245, 15, 15);
  line(100, 240, 100, 260);

  line(100, 270, 105, 280);
  line(115, 270, 100, 290);


  //words on book(bad)
  line(240, 150, 240, 170);
  ellipse(247, 150, 14, 14);
  ellipse(247, 165, 14, 14);


  ellipse(250, 220, 17, 17);
  line(258, 220, 265, 228);


  ellipse(250, 280, 17, 17);
  line(260, 265, 260, 285);




  //sun light

  fill(250, 250, 0, 50);
  stroke(0, 0, 0, 20);
  ellipse(0, 0, (50+mouseX) * 0.5, (50+mouseX) * 0.5);
  ellipse(0, 0, (50+mouseX) * 0.4, (50+mouseX) * 0.4);
  ellipse(0, 0, (50+mouseX) * 0.3, (50+mouseX) * 0.3);
  ellipse(0, 0, (50+mouseX) * 0.2, (50+mouseX) * 0.2);


  //hide the half side of the book

  //leftside

  fill(233, 50+255-mouseX);
  noStroke();
  rect(60, 120, 180, 320);


  fill(78, 161, 246, 150);
  rectMode(CORNERS);
  rect(70, 170, 170, 172);
  rect(70, 200, 170, 202);
  rect(70, 230, 170, 232);
  rect(70, 260, 170, 262);
  rect(70, 290, 170, 292);





  //rightside

  fill(233, -50+mouseX);
  rect(190, 120, 310, 320);

  fill(78, 161, 246, 150);

  rect(210, 170, 300, 172);
  rect(210, 200, 300, 202);
  rect(210, 230, 300, 232);
  rect(210, 260, 300, 262);
  rect(210, 290, 300, 292);


  //pencil


  fill(172, 121, 86);
  triangle(mouseX-10, mouseY-10, mouseX-20, mouseY+20, mouseX+10, mouseY+10);

  fill(0);
  triangle(mouseX-15, mouseY+10, mouseX-20, mouseY+20, mouseX-10, mouseY+15);

  fill(255, 151, 72);
  quad(mouseX-10, mouseY-10, mouseX+10, mouseY+10, mouseX+140, mouseY-90, mouseX+120, mouseY-120);



  //rain
  ellipseMode(CENTER);
  fill(78, 161, 246, -100+mouseY);
  noStroke();
  frameRate(60);
  ellipse(frameCount % 150, -10+tan(frameCount * 0.05) * 20, 4, 5);
  ellipse(30+frameCount % 150, -12+tan(frameCount * 0.03) * 15, 4, 5);
  ellipse(59+frameCount % 150, -23+tan(frameCount * 0.06) * 17, 4, 5);
  ellipse(115+frameCount % 150, -16+tan(frameCount * 0.04) * 18, 4, 5);
  ellipse(230+frameCount % 150, -15+tan(frameCount * 0.06) * 19, 4, 5);





  ellipse(70+frameCount % 150, -20+tan(frameCount * 0.04) * 16, 4, 5);
  ellipse(90+frameCount % 150, -23+tan(frameCount * 0.02) * 13, 4, 5);
  ellipse(105+frameCount % 150, -30+tan(frameCount * 0.06) * 15, 4, 5);
  ellipse(120+frameCount % 150, -25+tan(frameCount * 0.07) * 17, 4, 5);
  ellipse(213+frameCount % 150, -17+tan(frameCount * 0.03) * 19, 4, 5);
}


void mousePressed(){
  //when mouse pressed, no text on book
 frameRate(2);
 
 //book(diary) outlook

  fill(233);
  rect(60, 120, 320, 340);
  ellipseMode(CORNERS);
  ellipse(60, 110, 190, 130);
  ellipse(190, 110, 320, 130);
  fill(220, 123, 72);
  ellipse(60, 330, 190, 350);
  ellipse(190, 330, 320, 350);


  //book texture

  //leftside lines
  stroke(78, 161, 246, 150);
  strokeWeight(3);
  line(70, 170, 170, 170);
  line(70, 200, 170, 200);
  line(70, 230, 170, 230);
  line(70, 260, 170, 260);
  line(70, 290, 170, 290);

  //rightside lines 
  line(210, 170, 300, 170);
  line(210, 200, 300, 200);
  line(210, 230, 300, 230);
  line(210, 260, 300, 260);
  line(210, 290, 300, 290);




}