/*Name: Reece Themen
Student #99140042
Class Code:PROG14998
*/
void setup() {
size (400, 400);
frameRate(20);
}
void draw() {
background(255);
stroke(0);
strokeWeight(20);
ellipseMode(CENTER);
ellipse(width/2,height/2, 800*sin(frameCount), 800*sin(frameCount));
ellipse(width/2,height/2, 800*sin(frameCount+PI), 800*sin(frameCount+PI));
ellipse(width/2,height/2, 800*sin(frameCount+HALF_PI), 800*sin(frameCount+HALF_PI));
ellipse(width/2,height/2, 800*sin(frameCount-HALF_PI), 800*sin(frameCount-HALF_PI));
//Jack's abdomin
stroke(0);
strokeWeight(1);
quad(170 + mouseX/(13.3333), 218 - mouseX/(22.2222), 230 - mouseX/(13.3333), 218 - mouseX/(22.2222), 218 - mouseX/(22.2222), 157 + mouseX/(9.3023), 182 + mouseX/(22.2222), 157 + mouseX/(9.3023));
line(180 + mouseX/(20), 218 - mouseX/(22.2222), 221 - mouseX/(19.0476), 176 + mouseX/(16.6666));
line(195 + mouseX/(80), 218 - mouseX/(22.2222), 224 - mouseX/(16.6666), 190 + mouseX/(40));
line(176 + mouseX/(16.6666), 190 + mouseX/(40), 192 + mouseX/(50), 205 - mouseX/(80));
line(179 + mouseX/(19.0476), 176 + mouseX/(16.6666), 200, 196+mouseX/(100));
//Jack's belt
rectMode(CORNERS);
rect(177+mouseX/(17.3913), 218 - mouseX/(22.2222), 223-mouseX/(17.3913), 232-mouseX/(12.5));
line(177+mouseX/(17.3913), 221-mouseX/(19.0476), 223-mouseX/(17.3913), 225-mouseX/(16));
line(223-mouseX/(17.3913), 225-mouseX/(16), 177+mouseX/(17.3913), 228-mouseX/(14.2857));
//Jack's legs
quad(177+mouseX/(17.3913), 232-mouseX/(12.5), 223-mouseX/(17.3913), 232-mouseX/(12.5), 280-mouseX/(5), 325-mouseX/(3.2), 120+mouseX/(5), 325-mouseX/(3.2));
line(155+mouseX/(8.8888), 325-mouseX/(3.2), 184+mouseX/(25), 232-mouseX/(12.5));
line(170+mouseX/(13.3333), 325-mouseX/(3.2), 199+mouseX/(400), 232-mouseX/(12.5));
//Jack's left foot
quad(120+mouseX/(5), 325-mouseX/(3.2), 140+ mouseX/(6.6666), 325-mouseX/(3.2), 132 + mouseX/(5.8823), 364 - mouseX/(2.43902), 108 + mouseX/(4.3478), 364 - mouseX/(2.43902));
line(110+mouseX/(4.4444), 360-mouseX/(2.5), 133 + mouseX/(5.9701), 360-mouseX/(2.5));
line(125+mouseX/(5.3333), 360-mouseX/(2.5), 127+mouseX/(5.4794), 352-mouseX/(2.6315));
line(127+mouseX/(5.4794), 352-mouseX/(2.6315), 135+mouseX/(6.1538), 347-mouseX/(2.7210));
line(127+mouseX/(5.4794), 352-mouseX/(2.6315), 136+mouseX/(6.25), 342-mouseX/(2.8169));
line(127+mouseX/(5.4794), 352-mouseX/(2.6315), 115+mouseX/(4.7058), 343-mouseX/(2.7972));
line(127+mouseX/(5.4794), 352-mouseX/(2.6315), 113+mouseX/(4.5977), 346-mouseX/(2.7397));
line(120+mouseX/(5), 360-mouseX/(2.5), 122+mouseX/(5.1282), 353-mouseX/(2.6143));
line(115+mouseX/(4.7058), 360-mouseX/(2.5), 117+mouseX/(4.8192), 353-mouseX/(2.6143));
//Jack's right foot
quad(280-mouseX/(5), 325-mouseX/(3.2), 260- mouseX/(6.6666), 325-mouseX/(3.2), 268- mouseX/(5.8823), 364 - mouseX/(2.439), 292- mouseX/(4.3478), 364 - mouseX/(2.439));
line(290-mouseX/(4.4444), 360-mouseX/(2.5), 267- mouseX/(5.9701), 360-mouseX/(2.5));
line(275-mouseX/(5.3333), 360-mouseX/(2.5), 273-mouseX/(5.4794), 352-mouseX/(2.6315));
line(273-mouseX/(5.4794), 352-mouseX/(2.6315), 265-mouseX/(6.1538), 347-mouseX/(2.7210));
line(273-mouseX/(5.4794), 352-mouseX/(2.6315), 264-mouseX/(6.25), 342-mouseX/(2.8169));
line(273-mouseX/(5.4794), 352-mouseX/(2.6315), 285-mouseX/(4.7058), 343-mouseX/(2.7972));
line(273-mouseX/(5.4794), 352-mouseX/(2.6315), 287-mouseX/(4.5977), 346-mouseX/(2.7397));
line(280-mouseX/(5), 360-mouseX/(2.5), 278-mouseX/(5.1282), 353-mouseX/(2.6143));
line(285-mouseX/(4.7058), 360-mouseX/(2.5), 283-mouseX/(4.8192), 353-mouseX/(2.6143));
//Jack's left arm
quad(177 + mouseX/(17.3913), 176 + mouseX/(16.6666), 84+mouseX/(3.4482), 197+mouseX/(133.3333), 93+mouseX/(3.7383), 240-mouseX/(10), 172+mouseX/(14.2857), 206-mouseX/(66.6666));
line(95+mouseX/(3.8095), 194+mouseX/(66.6666), 103+mouseX/(4.1237), 235-mouseX/(11.4285));
quad(84+mouseX/(3.4482), 197+mouseX/(133.3333), 86+mouseX/(3.50877), 208-mouseX/(50),66+mouseX/(2.98507), 212-mouseX/(33.3333), 70 + mouseX/(3.0769), 200 );
noStroke();
triangle(86+mouseX/(3.50877), 209-mouseX/(44.4444), 93+mouseX/(3.7383), 240-mouseX/(100), 79+mouseX/(3.3057), 210-mouseX/(40));
stroke(0);
line(93+mouseX/(3.7383), 240-mouseX/(10), 79+mouseX/(3.3057), 210-mouseX/(40));
//Jacks right arm
quad(222- mouseX/(18.1818), 176 + mouseX/(16.6666), 316-mouseX/(3.4482), 195+mouseX/(80), 307-mouseX/(3.7383), 240-mouseX/(10), 228-mouseX/(14.2857), 206-mouseX/(66.6666));
line(305-mouseX/(3.8095), 194+mouseX/(66.6666), 297-mouseX/(4.1237), 235-mouseX/(11.4285));
quad(316-mouseX/(3.4482), 197+mouseX/(133.3333), 314-mouseX/(3.50877), 208-mouseX/(50),334-mouseX/(2.98507), 212-mouseX/(33.3333), 330- mouseX/(3.0769), 200 );
rect(333-mouseX/(3.0075),193+mouseX/(57.1428), 328-mouseX/(3.125), 205-mouseX/(80));
quad(353-mouseX/(2.6143), 200, 350-mouseX/(2.6666), 220-mouseX/(20), 332-mouseX/(3.0303), 220-mouseX/(20), 333-mouseX/(3.0075), 193+mouseX/(57.1428));
rect(357-mouseX/(2.5477), 193+mouseX/(57.1428), 333-mouseX/(3.0075),200);
line(332-mouseX/(3.0303), 207-mouseX/(57.1428), 348-mouseX/(2.7027),207-mouseX/(57.1428));
line(332-mouseX/(3.0303),213.5-mouseX/(29.6296), 346-mouseX/(2.7397),213.5-mouseX/(29.6296));
noStroke();
triangle(314-mouseX/(3.50877), 209-mouseX/(44.4444), 307-mouseX/(3.7383), 240-mouseX/(100), 321-mouseX/(3.3057), 210-mouseX/(40));
stroke(0);
line(307-mouseX/(3.7383), 240-mouseX/(10), 321-mouseX/(3.3057), 210-mouseX/(40));
//Jack's sword and hand
rectMode(CORNERS);
rect(40+mouseX/(2.5), 187+mouseX/(30.7692), 78+mouseX/(3.2786), 193+mouseX/(57.1428));
rect(67+mouseX/(3.0075),193+mouseX/(57.1428), 72+mouseX/(3.125), 205-mouseX/(80));
quad(47+mouseX/(2.6143), 200, 50+mouseX/(2.6666), 220-mouseX/(20), 68+mouseX/(3.0303), 220-mouseX/(20), 67+mouseX/(3.0075), 193+mouseX/(57.1428));
rect(43+mouseX/(2.5477), 193+mouseX/(57.1428), 67+mouseX/(3.0075),200);
rect(55+mouseX/(2.7586), 220-mouseX/(20), 62+mouseX/(2.8985), 240-mouseX/(10));
quad(55+mouseX/(2.7586),187+mouseX/(30.7692), 62+mouseX/(2.8985),187+mouseX/(30.7692), 60+mouseX/(2.8571), 60+mouseX/(2.8571), 50+mouseX/(2.6666), 70+mouseX/(3.0769));
line(68+mouseX/(3.0303), 207-mouseX/(57.1428), 52+mouseX/(2.7027),207-mouseX/(57.1428));
line(68+mouseX/(3.0303),213.5-mouseX/(29.6296), 54+mouseX/(2.7397),213.5-mouseX/(29.6296));
//Jack's head
noStroke();
rectMode(CORNERS);
fill(255);
rect(186+mouseX/(28.5714), 120 + mouseX/(5), 214 -mouseX/(28.5714), 168 + mouseX/(12.5));
triangle(186+mouseX/(28.5714), 120+mouseX/(5), 186+mouseX/(28.5714), 168+mouseX/(12.5), 180+mouseX/(20), 152+mouseX/(8.3333));
triangle(214-mouseX/(28.5714), 120+mouseX/(5), 214-mouseX/(28.5714), 168+mouseX/(12.5), 220-mouseX/(20), 152+mouseX/(8.3333));
stroke(0);
line(186+mouseX/(28.5714), 120+mouseX/(5), 214-mouseX/(28.5714), 120+mouseX/(5));
line(186+mouseX/(28.5714), 120+mouseX/(5), 180+mouseX/(20), 152+mouseX/(8.3333));
line(214-mouseX/(28.5714), 120+mouseX/(5), 220-mouseX/(20), 152+mouseX/(8.3333));
line(186+mouseX/(28.5714), 168+mouseX/(12.5), 180+mouseX/(20), 152+mouseX/(8.3333));
line(214-mouseX/(28.5714), 168+mouseX/(12.5), 220-mouseX/(20), 152+mouseX/(8.3333));
line(186 +mouseX/(28.5714), 168 + mouseX/(12.5), 214 -mouseX/(28.5714), 168 + mouseX/(12.5));
//Jack's nose
line(200, 128+mouseX/(5.5555), 200, 142+mouseX/(6.8965));
line(200,142+mouseX/(6.8965), 205-mouseX/(80), 140+mouseX/(6.6666));
//Jack's hair
line(186 +mouseX/(28.5714),120 + mouseX/(5), 200, 125+mouseX/(5.3333));
line(214 -mouseX/(28.5714),120 + mouseX/(5),200, 125+mouseX/(5.3333));
triangle(200, 119 + mouseX/(4.9382), 200, 110+mouseX/(4.4444), 195+mouseX/(80),110+mouseX/(4.4444));
//Jack's mouth
ellipseMode(CORNERS);
arc(192.5+mouseX/(53.3333), 145+mouseX/(7.2727), 207.5-mouseX/(53.3333), 155+mouseX/(8.8888), PI+QUARTER_PI/3, TWO_PI-QUARTER_PI/3);
//Jack's ears
triangle(178+mouseX/(18.1818), 140+mouseX/(6.6666), 183+mouseX/(23.5294), 135+mouseX/(6.1538),181+mouseX/(21.0526), 143+mouseX/(7.0175));
triangle(222-mouseX/(18.1818), 140+mouseX/(6.6666), 217-mouseX/(23.5294), 135+mouseX/(6.1538),219-mouseX/(21.0526), 143+mouseX/(7.0175));
//Jack's eyes and brows
ellipseMode(CORNERS);
arc(187+mouseX/(30.7692), 133.5+mouseX/(6.3492), 193+mouseX/(57.1428), 140.5+mouseX/(6.7226), PI+QUARTER_PI+QUARTER_PI/2, TWO_PI-QUARTER_PI/2);
arc(208-mouseX/(50), 133.5+mouseX/(6.3492), 214-mouseX/(28.5714), 140.5+mouseX/(6.7226), PI+QUARTER_PI/2, TWO_PI-QUARTER_PI-QUARTER_PI/2);
line(190+mouseX/(40), 137+mouseX/(6.3492), 188+mouseX/(33.3333), 137+mouseX/(6.3492));
line(210-mouseX/(40), 137+mouseX/(6.3492), 212-mouseX/(33.3333), 137+mouseX/(6.3492));
fill(0);
triangle(195+mouseX/(80), 132+mouseX/(5.8823), 186+mouseX/(28.5714), 128+mouseX/(5.5555), 186+mouseX/(28.5714), 126+mouseX/(5.4054));
triangle(205-mouseX/(80), 132+mouseX/(5.8823), 214-mouseX/(28.5714), 128+mouseX/(5.5555), 214-mouseX/(28.5714), 126+mouseX/(5.4054));
//aku's circle
ellipseMode(CENTER);
fill(255);
stroke(0);
ellipse(mouseX, mouseY, 90, 110);
//aku's palm
ellipseMode(CORNER);
fill(0);
stroke(0);
ellipse(mouseX, mouseY, 30, 40);
stroke(255);
fill(255);
arc(mouseX+15, mouseY+10, 30, 45, HALF_PI + QUARTER_PI, PI+HALF_PI+QUARTER_PI);
//aku's index finger base
rectMode(CORNER);
stroke(0);
fill(0);
rect(mouseX+18, mouseY-21, 10, 30);
stroke(255);
fill(255);
ellipseMode(CENTER);
ellipse(mouseX+18, mouseY-12, 7, 25);
ellipse(mouseX+28, mouseY-10, 4, 30);
//aku's index finger
ellipseMode(CENTER);
fill(0);
noStroke();
arc(mouseX+7, mouseY-21, 40, 40, PI+QUARTER_PI, TWO_PI);
fill(255);
noStroke();
arc(mouseX+1, mouseY-21, 40, 36, PI+QUARTER_PI, TWO_PI);
//aku's middle finger
ellipseMode(CENTER);
noStroke();
fill(0);
arc(mouseX-8, mouseY+2, 50, 60, PI+QUARTER_PI, TWO_PI);
fill(255);
arc(mouseX-15, mouseY+2, 50, 50, PI+QUARTER_PI, TWO_PI);
//aku's ring finger
ellipseMode(CENTER);
fill(0);
noStroke();
arc(mouseX-9, mouseY+20, 50, 50, PI, PI+HALF_PI+QUARTER_PI);
fill(255);
arc(mouseX-12, mouseY+26, 45, 50, PI, PI+HALF_PI+QUARTER_PI);
//aku's pinky finger base
rectMode(CORNER);
fill(0);
noStroke();
rect(mouseX-7, mouseY+15, 7, 10);
triangle(mouseX-7, mouseY+15, mouseX-7, mouseY+25, mouseX-15, mouseY+25);
ellipseMode(CENTER);
fill(255);
ellipse(mouseX-2, mouseY+15, 7, 2);
ellipse(mouseX-15, mouseY+15, 16, 20);
//aku's pinky finger
ellipseMode(CORNER);
fill(0);
noStroke();
arc(mouseX-15, mouseY, 22, 50, HALF_PI, PI);
ellipseMode(CENTER);
fill(255);
ellipse(mouseX-2, mouseY+37.5, 12, 25);
}