/*
Strange Dog
Adrian Cogswell
PROG14998 2018
assignment 1: interactive drawing
*/
//set window size
void setup() {
size(400, 400);
}
void draw(){
//setup
background(130, 147, 157);
noStroke();
rectMode(CORNERS);
//CLOUDS - MOVE BASED ON MOUSE'S X POSITION
fill(225, 220, 212, 100);//lgtbeige
rect(40-mouseX/2, 40, 150-mouseX/2, 95, 80);
rect(120+mouseX/2.5, 70, 230+mouseX/2.5, 85, 100);
rect(mouseX/.5-90, -30, 80+mouseX/.5, 100, 50);
rect(210+mouseX/2, 10, 320+mouseX/2, 60, 80);
rect(400-mouseX, 20, 510-mouseX, 75, 100);
//BODY+CUTOUTS - BODY + TAIL WILL BREATHE IN AND OUT CONSTANTLY
//tail
fill(183, 169, 143);//medbeige
ellipse(300, 145+4*cos(frameCount*.1), 70, 70);//tailbase
fill(130, 147, 157);//bgblue
ellipse(290, 135+4*cos(frameCount*.1), 60, 60);//tailcutout
//legs + torso
fill(183, 169, 143);//medbeige
ellipse(115, 160, 33, 33);//lshoulder
triangle(36, 205, 123, 173, 103, 149);//lbicep
fill(225, 220, 212);//lgtbeige
ellipse(210, 220, 200, 200+4*sin(frameCount*.1));//torsobase
fill(130, 147, 157);//bgblue
ellipse(215, 260, 170, 170);//torsobasecutout
fill(225, 220, 212);//lgtbeige
ellipse(170, 200, 80, 80);//ribcagebase
ellipse(300, 260, 100, 100);//hindthighs
fill(183, 169, 143);//medbeige
ellipse(300, 275, 100, 100);//hindthighs
fill(130, 147, 157);//bgblue
ellipse(300, 295, 85, 85);//hindthighscutout
fill(106, 102, 100);///bgbrown
rect(0, 300, 400, 400);//ground
//rib depresses
stroke(194, 131, 83);//orange
line(170, 240, 180 ,205);
line(185, 235, 195, 200);
line(200, 225, 210, 190);
noStroke();
//LEGS - COMPLETELY STATIONARY
fill(183, 169, 143);//medbeige
//hind
triangle(343, 300, 343, 272, 320, 272);//rhind2ndjoint
triangle(257, 300, 257, 272, 280, 272);//lhind2ndjoint
fill(130, 147, 157);//bgblue
rect(0, 293, 400, 310);//kneecutoff
fill(183, 169, 143);//medbeige
rect(320, 272, 330, 320);//rhind3rdjoint
rect(270, 272, 280, 320);//lhind3rdjoint
//front
ellipse(170, 160, 33, 33);//rshoulder
triangle(225, 235, 185, 154, 157, 170);//rbicep
ellipse(225, 235, 25, 25);//relbow
quad(235, 242, 225, 320, 200, 320, 213, 238);//rforeleg
ellipse(36, 205, 25, 25);//lelbow
rect(23.5, 205, 48.5, 320);//lforeleg
//feet
fill(225, 220, 212);//lgtbeige
ellipse(205, 320, 40, 25);//rfrontfoot
ellipse(43.5, 320, 40, 25);//lfrontfoot
ellipse(330, 320, 20, 25);//rbackfoot
ellipse(270, 320, 20, 25);//lbackfoot
fill(106, 102, 100);///bgbrown
rect(0, 320, 400, 400);//footcutout
//collar
fill(66, 64, 75);//drkblue
quad(125, 200, 155, 245, 145, 245, 125, 215);//rsidecollar
quad(125, 200, 95, 245, 105, 245, 125, 215);//lsidecollar
fill(81, 140, 173);//lgtblue - collarstuds
ellipse(135, 216, 8, 8);//stud1
ellipse(114, 216, 8, 8);//stud2
ellipse(146, 232, 8, 8);//stud3
ellipse(103, 232, 8, 8);//stud4
//tongue
fill(194, 131, 83);//orange
rect(110, 270, 140, 270+0.25*mouseY);//tonguebase
ellipse(125, 270+0.25*mouseY, 30, 30);
stroke(130, 104, 85);//drkorange
strokeWeight(5);
line(125, 270, 125, 270+0.25*mouseY);
noStroke();
//head
fill(183, 169, 143);//medbeige
ellipse (160, 280+.8*sin(frameCount*.1), 70, 70);//rcirc
ellipse (90, 280+.8*sin(frameCount*.1), 70, 70);//lcirc
rect(90, 245+.8*sin(frameCount*.1), 160, 280+4*sin(frameCount*.1));//connector
//eyes
fill(225, 220, 212);//lgtbeige
ellipse(170, 285+.8*sin(frameCount*.1), 30, 30);//righteyebase
ellipse(80, 285+.8*sin(frameCount*.1), 30, 30);//leyebase
ellipse(170, 285+.8*sin(frameCount*.1), 38, 8);//reyecorners
ellipse(80, 285+.8*sin(frameCount*.1), 38, 8);//leyecorners
fill(194, 131, 83);//orange - orange iris level
ellipse(173-.8*sin(frameCount*.1), 283+.8*cos(frameCount*.1), 20, 20);//riris1
ellipse(77+.8*sin(frameCount*.1), 283+.8*cos(frameCount*.1), 20, 20);//liris1
fill(81, 140, 173);//lgtblue - blue iris level
ellipse(174-.8*sin(frameCount*.1), 281+.8*cos(frameCount*.1), 15, 15);//riris2
ellipse(76+.8*sin(frameCount*.1), 281+.8*cos(frameCount*.1), 15, 15);//liris2
fill(66, 64, 75);//drkblue - pupil level
ellipse(173-.8*sin(frameCount*.1), 282+.8*cos(frameCount*.1), 10, 10);//rpupil
ellipse(77+.8*sin(frameCount*.1), 282+.8*cos(frameCount*.1), 10, 10);//lpupil
triangle(125, 280+.8*sin(frameCount*.1), 115, 270+.8*sin(frameCount*.1), 135, 270+.8*sin(frameCount*.1));//nose
//ear
fill(105, 96, 89);//drkbrown - ear level
ellipse(180, 245+.8*sin(frameCount*.1), 35, 35);//rcirc
ellipse(70, 245+.8*sin(frameCount*.1), 35, 35);//lcirc
rect(162.5, 227+.8*sin(frameCount*.1), 197.5, 245);//rrect
rect(52.5, 227+.8*sin(frameCount*.1), 87.5, 245);//lrect
//DOGBONE CURSOR - FLOAT AROUND CURSOR POSITION
//outline
fill(130, 104, 85, 50);//drkorange
rect(mouseX+5*sin(frameCount*.05)-18, mouseY+5*sin(frameCount*.1)-8, 18+mouseX+5*sin(frameCount*.05), 8+mouseY+5*sin(frameCount*.1));
ellipse(mouseX+5*sin(frameCount*.05)-15, mouseY+5*sin(frameCount*.1)-5, 16, 16);
ellipse(mouseX+5*sin(frameCount*.05)+15, mouseY+5*sin(frameCount*.1)-5, 16, 16);
ellipse(mouseX+5*sin(frameCount*.05)-15, mouseY+5*sin(frameCount*.1)+5, 16, 16);
ellipse(mouseX+5*sin(frameCount*.05)+15, mouseY+5*sin(frameCount*.1)+5, 16, 16);
//fill
fill(194, 131, 83);//orange
rect(mouseX+5*sin(frameCount*.05)-15, mouseY+5*sin(frameCount*.1)-5, 15+mouseX+5*sin(frameCount*.05), 5+mouseY+5*sin(frameCount*.1));
ellipse(mouseX+5*sin(frameCount*.05)-15, mouseY+5*sin(frameCount*.1)-5, 10, 10);
ellipse(mouseX+5*sin(frameCount*.05)+15, mouseY+5*sin(frameCount*.1)-5, 10, 10);
ellipse(mouseX+5*sin(frameCount*.05)-15, mouseY+5*sin(frameCount*.1)+5, 10, 10);
ellipse(mouseX+5*sin(frameCount*.05)+15, mouseY+5*sin(frameCount*.1)+5, 10, 10);
fill(66, 64, 75);//drkblue
rect(5+mouseX+5*sin(frameCount*.05), mouseY+5*sin(frameCount*.1)-5, 10+mouseX+5*sin(frameCount*.05), 5+mouseY+5*sin(frameCount*.1));
}