xxxxxxxxxx
312
function setup() {
createCanvas(400, 600);
}
function draw() {
background(0);
//strokeWeight(0);
translate(mouseX - 200, mouseY - 200);
scale(mouseX / 200, mouseY / 200);
drawLegs();
drawPatterns();
drawStomach();
drawArms();
drawHead();
drawFace();
}
function drawStomach() {
push();
//Body
translate(200, 270);
fill(165, 125, 115);
beginShape();
vertex(-125, 75);
bezierVertex(-100, 175, 100, 175, 125, 75);
bezierVertex(175, -100, 25, -155, 0, -150);
bezierVertex(-25, -155, -175, -100, -125, 75);
endShape();
//Stomach
push();
translate(0, 50);
fill(222, 202, 201);
scale(1.35, .85);
//scale(mouseX / 200, mouseY / 200);
//scale(1.25,0.75);
ellipse(0, 0, 150, 200);
pop();
pop();
push();
strokeWeight(0);
beginShape();
fill(240)
vertex(130, 406);
bezierVertex(185, 440, 210, 440, 270, 406);
endShape();
pop();
}
function drawArms() {
push();
translate(75, 170);
fill(165, 125, 115);
beginShape();
vertex(-25, 75);
bezierVertex(-75, 200, 75, 200, 25, 75);
bezierVertex(15, 50, 25, 25, 50, 0);
bezierVertex(50, 0, 75, -25, 35, -25);
bezierVertex(35, -25, -20, 0, -25, 75);
endShape();
pop();
//Mirror Arms
push();
translate(315, 170);
fill(165, 125, 115);
scale(width / -width, 1);
beginShape();
vertex(-25, 75);
bezierVertex(-75, 200, 75, 200, 25, 75);
bezierVertex(15, 50, 25, 25, 50, 0);
bezierVertex(50, 0, 75, -25, 35, -25);
bezierVertex(35, -25, -20, 0, -25, 75);
endShape();
pop();
}
function drawHead() {
push();
fill(165, 125, 115);
translate(200, 110);
ellipse(0, 0, 160, 120)
pop();
//Left Ear
push();
fill(165, 125, 115);
translate(0, -30);
beginShape();
vertex(125, 120);
bezierVertex(110, 40, 110, 40, 175, 85);
endShape();
pop();
//Left Ear Interior
push();
fill(206, 146, 131);
translate(35, -5);
scale(0.75);
beginShape();
vertex(125, 120);
bezierVertex(110, 40, 110, 40, 175, 85);
endShape();
pop();
//Right Ear
push();
fill(165, 125, 115);
translate(100, -30);
beginShape();
vertex(175, 120);
bezierVertex(170, 40, 170, 40, 130, 85);
endShape();
pop();
//Right Ear Interior
push();
fill(206, 146, 131);
translate(140, -5);
scale(0.75);
beginShape();
vertex(175, 120);
bezierVertex(170, 40, 170, 40, 130, 85);
endShape();
pop();
}
function drawFace() {
//Draw Eyes
push();
translate(width / 2.4 + 65, 100);
scale(width / -width, 1);
push();
rotate(35);
fill(0);
ellipse(0, 0, 45, 35);
pop();
fill(200, 170, 50);
ellipse(0, 0, 35, 35);
fill(0);
ellipse(0, 0, 15, 20);
pop();
//Mirror Eyes
push();
translate(width / 2.4, 100);
push();
rotate(35);
fill(0);
ellipse(0, 0, 45, 35);
pop();
fill(200, 170, 50);
ellipse(0, 0, 35, 35);
fill(0);
ellipse(0, 0, 15, 20);
pop();
//Mouth
push();
translate(width / 2, height / 2);
fill(205, 165, 155);
ellipse(0, -130, 40, 30);
fill(185, 145, 135);
ellipse(-15, -140, 30, 20);
ellipse(15, -140, 30, 20);
//Nose
push();
strokeWeight(0);
fill(206 * 0.1, 146 * 0.1, 131 * 0.1);
ellipse(0, -160, 23, 23);
rect(-18, -173, 38, 20, 10);
fill(206, 146, 131);
ellipse(0, -160, 20, 20);
rect(-16, -173, 33, 18, 10);
pop();
pop();
push();
translate(215, 160);
rect(0, 0, 20, 1);
rect(-2, -8, 20, 1);
rect(-50, 0, 20, 1);
rect(-55, -8, 20, 1);
pop();
}
function drawLegs() {
fill(240);
push();
translate(width / 2.75, 375);
beginShape();
vertex(-20, 0);
bezierVertex(-20, 25, -10, 75, 15, 110);
bezierVertex(20, 120, 25, 120, 30, 110);
bezierVertex(40, 75, 45, 25, 45, 0);
endShape();
beginShape();
vertex(15, 110);
bezierVertex(0, 130, 20, 170, 25, 210);
bezierVertex(28, 210, 32, 210, 35, 210);
bezierVertex(40, 170, 50, 130, 30, 110);
endShape();
fill(200);
ellipse(28, 215, 20, 20);
ellipse(25, 220, 35, 20);
pop();
//Mirror Legs
push();
translate(width / 2.75 + 105, 375);
scale(width / -width, 1);
beginShape();
vertex(-20, 0);
bezierVertex(-20, 25, -10, 75, 15, 110);
bezierVertex(20, 120, 25, 120, 30, 110);
bezierVertex(40, 75, 45, 25, 45, 0);
endShape();
beginShape();
vertex(15, 110);
bezierVertex(0, 130, 20, 170, 25, 210);
bezierVertex(28, 210, 32, 210, 35, 210);
bezierVertex(40, 170, 50, 130, 30, 110);
endShape();
fill(200);
ellipse(28, 215, 20, 20);
ellipse(25, 220, 35, 20);
pop();
}
function drawPatterns() {
push();
blendMode(DARKEST);
translate(120, 450);
scale(1, 0.8);
fill(255, 205, 208);
quad(-10, 0, 25, -25, 60, 0, 25, 25);
translate(70, 50);
fill(255, 205, 208);
quad(-10, 0, 25, -25, 60, 0, 25, 25);
translate(30, 100);
fill(255, 232, 164);
quad(-10, 0, 25, -25, 60, 0, 25, 25);
translate(-70, -25);
fill(208, 225, 245);
quad(-10, 0, 25, -25, 60, 0, 25, 25);
translate(-20, -55);
fill(255, 232, 164);
quad(-10, 0, 25, -25, 60, 0, 25, 25);
pop();
}