/* PROG14998 Interactive Drawing
"Steeping Tea", by Avery "Ace" Bellikka
Submitted September 22 2016
Drawing of a little tea mug sitting on a table with steam floating above.
The user may scrub the mouse up/down to dip the teabag in the tea.
*/
void setup() {
size(400,400);
noStroke();
}
void draw() {
rectMode(CORNERS);
ellipseMode(CORNERS);
//background image
background(#C69CC6);
//table surface
fill(#957A5E);
noStroke();
rect(0,300,400,400);
//window elements
//window glass
fill(#B8ECFA);
stroke(#E0C38C);
strokeWeight(4);
rect(200,40,360,200);
//sun seen through window
fill(#F8FF95,255);
stroke(#FFFFFF);
strokeWeight(2);
ellipse(310,70,330,90);
fill(#F8FF95,100);
noStroke();
ellipse(300,60,340,100);
//window panes
stroke(#E0C38C);
strokeWeight(4);
line(280,40,280,200);
line(200,120,360,120);
//steam
//left steam
noFill();
stroke(#ffffff,200);
strokeWeight(3);
//sin+frameCount makes the steam float up and down in the air
arc(100,40+sin(frameCount*0.03)*7,140,80+sin(frameCount*0.03)*7,HALF_PI,TWO_PI-HALF_PI);
arc(100,80+sin(frameCount*0.03)*7,140,120+sin(frameCount*0.03)*7,PI+HALF_PI,QUARTER_PI+TWO_PI);
//right steam
noFill();
stroke(#ffffff,200);
strokeWeight(3);
arc(220,80+sin(frameCount*0.03)*7,260,120+sin(frameCount*0.03)*7,HALF_PI,TWO_PI-HALF_PI);
arc(220,120+sin(frameCount*0.03)*7,260,160+sin(frameCount*0.03)*7,PI+HALF_PI,QUARTER_PI+TWO_PI);
//shadow
fill(#675C51,200);
noStroke();
ellipse(20,320,250,380);
//tea mug
//mug base
noStroke();
fill(#54CBC1);
quad(110,320,250,320,240,350,120,350);
ellipse(120,340,240,360);
//main part of mug
fill(#54CBC1);
ellipse(80,160,280,200);
quad(80,180,280,180,260,320,100,320);
ellipse(100,300,260,340);
//handle
noFill();
stroke(#54CBC1);
strokeWeight(10);
ellipse(240,200,320,300);
//tea bag
//back part of tea bag
fill(#ffffff,255);
noStroke();
//mouseY/3 limits teabag's movement with the cursor
quad(160,80+mouseY/3,200,80+mouseY/3,220,150+mouseY/3,140,150+mouseY/3);
//tea grounds
fill(#8E4C0A);
noStroke();
quad(160,120+mouseY/3,200,120+mouseY/3,210,140+mouseY/3,150,140+mouseY/3);
ellipse(160,110+mouseY/3,200,130+mouseY/3);
//string
stroke(#E3D4BE,255);
strokeWeight(2);
line(180,30+mouseY/3,180,80+mouseY/3);
//front part of tea bag
fill(#ffffff,200);
noStroke();
quad(160,80+mouseY/3,200,80+mouseY/3,220,150+mouseY/3,140,150+mouseY/3);
//staple
stroke(#CECECE,255);
strokeWeight(1);
line(170,90+mouseY/3,190,90+mouseY/3);
//tag part of bag
fill(#2D6C0C);
noStroke();
triangle(170,20+mouseY/3,190,20+mouseY/3,180,30+mouseY/3);
rect(170,0+mouseY/3,190,20+mouseY/3);
//actual tea in the mug
fill(#54CBC1);
quad(80,180,280,180,260,320,100,320);
fill(#8E4C0A,mouseY*0.8);
ellipse(100,170,260,200);
}