xxxxxxxxxx
406
var cx = 360; //circle x
var cy = 343; //circle y
var cr = 256; // circle radius
var easing =0.1;
var easing2 =0.03;
var brow = targetBrow;
var minBrow = -0.5;
var maxBrow = 0;
var targetBrow = -0.5;
var brow = maxBrow;
var browLeft = targetBrowLeft;
var minBrowLeft = 0.5;
var maxBrowLeft = 0;
var targetBrowLeft = 0.5;
var browLeft = maxBrowLeft;
var yLash1 = targetyLash1;
var minyLash1 = 322;
var maxyLash1 = 339;
var targetyLash1 = 322;
var yLash1 = maxyLash1;
var yLash2 = targetyLash2;
var minyLash2 = 334;
var maxyLash2 = 351;
var targetyLash2 = 334;
var yLash2 = maxyLash2;
var lid = targetLid;
var minLid = 362;
var maxLid = 377;
var targetLid = 362;
var lid = maxLid;
var lid = targetLid;
var minLid = 362;
var maxLid = 377;
var targetLid = 362;
var lid = maxLid;
var eyeSize = targetEyeSize;
var minEyeSize = 16;
var maxEyeSize = 30;
var targetEyeSize = 16;
var eyeSize = maxEyeSize;
var x = targetX;
var minX = 0;
var maxX = 9;
var targetX = 9;
var x = minX;
var yEye = targetyEye;
var minyEye = 349;
var maxyEye = 344;
var targetyEye = 344;
var yEye = minyEye;
var cheekSize = targetCheekSize;
var minCheekSize = 79;
var maxCheekSize = 138;
var targetCheekSize = 138;
var cheekSize = minCheekSize;
var cheekColor = targetCheekColor;
var minCheekColor = 0;
var maxCheekColor= 191;
var targetCheekColor = 0;
var cheekColor= maxCheekColor;
var nostril = targetNostril;
var minNostril = 7;
var maxNostril= 10;
var targetNostril = 10;
var nostril= minNostril;
var lip = targetLip;
var minLip = 0.75;
var maxLip= 1;
var targetLip = 0.75;
var lip= maxLip;
var sweatR = targetSweatR;
var minSweatR = 145;
var maxSweatR= 255;
var targetSweatR = 145;
var sweatR= maxSweatR;
var sweatG = targetSweatG;
var minSweatG = 200;
var maxSweatG= 255;
var targetSweatG = 200;
var sweatG= maxSweatG;
var sweatY = targetSweatY;
var minSweatY = 0;
var maxSweatY= 46;
var targetSweatY = 46;
var sweatY= minSweatY;
function setup() {
createCanvas(720, 720);
strokeJoin(ROUND);
strokeCap(ROUND);
cursor(HAND);
}
function draw() {
background(255);
//Eyes
stroke(0);
strokeWeight(10);
noFill();
//Lashes
//var yLash1 = map(mouseX, 0, width, 339, 322);
if (dist (mouseX,mouseY,cx,cy) < cr){
targetyLash1 = minyLash1;
} else {
targetyLash1 = maxyLash1;
}
yLash1 = yLash1 + (targetyLash1 - yLash1) * easing;
//var yLash2 = map(mouseX, 0, width, 351, 334);
if (dist (mouseX,mouseY,cx,cy) < cr){
targetyLash2 = minyLash2;
} else {
targetyLash2 = maxyLash2;
}
yLash2 = yLash2 + (targetyLash2 - yLash2) * easing;
line(191,yLash1,208,yLash2);
line(529,yLash1,512,yLash2);
//Lids
if (dist (mouseX,mouseY,cx,cy) < cr){
targetLid = minLid;
} else {
targetLid = maxLid;
}
lid = lid + (targetLid - lid) * easing;
arc(249,lid,94,94,radians(200),radians(340));
arc(471,lid,94,94,radians(200),radians(340));
//Chin
arc(360,322,546,546,radians(60),radians(120));
//Pupil
fill(0);
//var eyeSize = map(mouseX, 0, width, 34, 16);
if (dist (mouseX,mouseY,cx,cy) < cr){
targetEyeSize = minEyeSize;
} else {
targetEyeSize = maxEyeSize;
}
eyeSize = eyeSize + (targetEyeSize - eyeSize) * easing;
var x = map(mouseX,0, width, -9,9);
if (dist (mouseX,mouseY,cx,cy) < cr){
targetX = maxX;
} else {
targetX = minX;
}
x = x + (targetX - x) * easing;
var yEye = map(mouseY,0, height, 344,363);
if (dist (mouseX,mouseY,cx,cy) < cr){
targetyEye = maxyEye;
} else {
targetyEye = minyEye;
}
yEye = yEye + (targetyEye - yEye) * easing;
ellipse(251 + x,yEye,eyeSize,eyeSize);
ellipse(469 + x,yEye,eyeSize, eyeSize);
//Cheeks
if (dist (mouseX,mouseY,cx,cy) < cr){
targetCheekColor = minCheekColor;
} else {
targetCheekColor = maxCheekColor;
}
cheekColor= cheekColor + (targetCheekColor - cheekColor) * easing2;
fill(250,cheekColor, cheekColor);
if (dist (mouseX,mouseY,cx,cy) < cr){
targetCheekSize = maxCheekSize;
} else {
targetCheekSize = minCheekSize;
}
cheekSize= cheekSize + (targetCheekSize - cheekSize) * easing2;
strokeWeight(0);
ellipse(204,458,cheekSize,cheekSize);
ellipse(516,458,cheekSize,cheekSize);
//Nose
fill(0);
if (dist (mouseX,mouseY,cx,cy) < cr){
targetNostril = maxNostril;
} else {
targetNostril = minNostril;
}
nostril = nostril + (targetNostril - nostril) * easing;
//var nostril = map(mouseX, 0, width, 7, 10);
ellipse(345,443,nostril,nostril);
ellipse(375,443,nostril,nostril);
//Brows
if (dist (mouseX,mouseY,cx,cy) < cr){
targetBrow = minBrow;
} else {
targetBrow = maxBrow;
}
brow = brow + (targetBrow - brow) * easing;
if (dist (mouseX,mouseY,cx,cy) < cr){
targetBrowLeft = minBrowLeft;
} else {
targetBrowLeft = maxBrowLeft;
}
browLeft = browLeft + (targetBrowLeft - browLeft) * easing;
push();
translate (264, 269);
//var brow = map(mouseX, 0, width, 0, radians(-25));
rotate (brow);
ellipse(0,0,37,24);
pop();
push();
translate (456, 269);
//var browAngle = map(mouseX, 0, width, 0, radians(25));
rotate (browLeft);
ellipse(0,0,37,24);
pop();
//Lips
fill(0);
strokeWeight(7);
push();
translate (360, 509);
if (dist (mouseX,mouseY,cx,cy) < cr){
targetLip = minLip;
} else {
targetLip = maxLip;
}
lip= lip + (targetLip - lip) * easing;
if ((mouseX >339 ) &&
(mouseX <381) &&
(mouseY>495) &&
(mouseY < 525)){
stroke(65);
fill(65);
} else{
fill (0);
}
scale (lip,lip); //A,1, B,0.5
beginShape();
vertex(-36,0);
bezierVertex(-36,0,-30,-4,-26,-7);
bezierVertex(-18,-14,-15,-19,-10,-19);
bezierVertex(-8,-20,-4,-20,0,-17);
vertex(0,-17);
bezierVertex(4,-20,8,-20,10,-19);
bezierVertex(15,-19,18,-14,26,-7);
bezierVertex(30,-4,34,-1,36,0);
vertex(36,0);
bezierVertex(35,2,23,19,0,20);
bezierVertex(-18,19,-23,13,-27,10);
bezierVertex(-30,7,-35, 2,-36,0);
endShape();
pop();
push();
if ((mouseX >339 ) &&
(mouseX <381) &&
(mouseY>495) &&
(mouseY < 525)){
stroke(255);
} else{
fill (0);
}
//lipshine
strokeWeight(4);
noFill();
arc(365,508,21,21,radians(280),radians(320));
arc(365,510,21,21,radians(40),radians(80));
pop();
//Hair
strokeWeight(10);
fill(0);
beginShape();
vertex(127,394);
bezierVertex(95, 284,137,168,226,109);
bezierVertex(267,82,314,70,360,71);
bezierVertex(406, 70,453,82,494,109);
bezierVertex(583,168,625,284,593,394);
vertex(593, 394);
bezierVertex(591,310,565,274,542,256);
bezierVertex(511,232,478,238,424,205);
bezierVertex(394,186,373,164,361,150);
vertex(361,150);
bezierVertex(374,164,326,186,296,205);
bezierVertex(242,238,209,232,178,256);
bezierVertex(155,274,129,310,127,394);
endShape();
//shine
strokeWeight(10);
stroke(255);
arc(470,213,88,88,radians(280),radians(320));
strokeWeight(0);
fill(255);
ellipse(521,205,12,12);
//Sweat
if ((mouseX >339 ) &&
(mouseX <381) &&
(mouseY>495) &&
(mouseY < 525)&&
(mouseButton)){
targetSweatY = maxSweatY;
} else {
targetSweatY = minSweatY;
}
sweatY = sweatY + (targetSweatY - sweatY) * easing2;
if ((mouseX >339 ) &&
(mouseX <381) &&
(mouseY>495) &&
(mouseY < 525)&&
(mouseButton)){
targetSweatR = minSweatR;
targetSweatG = minSweatG;
} else {
targetSweatR = maxSweatR;
targetSweatG = maxSweatG;
}
sweatR = sweatR + (targetSweatR - sweatR);
sweatG = sweatG + (targetSweatG - sweatG);
strokeWeight(2);
stroke(sweatR,sweatG,255);
fill(sweatR,sweatG,255);
beginShape();
vertex(547,295+sweatY);
bezierVertex(548,295+sweatY,549,297+sweatY,551,298+sweatY);
bezierVertex(557,305+sweatY,561,316+sweatY,556,322+sweatY);
bezierVertex(555,324+sweatY,552,326+sweatY,550,325+sweatY);
bezierVertex(547,325+sweatY,545,324+sweatY,544,322+sweatY);
bezierVertex(542,317+sweatY,547,313+sweatY,547,303+sweatY);
bezierVertex(547,299+sweatY,547,297+sweatY,547,295+sweatY);
endShape();
beginShape();
vertex(564,339+sweatY);
bezierVertex(565,339+sweatY,566,341+sweatY,568,342+sweatY);
bezierVertex(574,349+sweatY,578,360+sweatY,573,366+sweatY);
bezierVertex(572,368+sweatY,569,370+sweatY,567,369+sweatY);
bezierVertex(564,369+sweatY,562,368+sweatY,561,366+sweatY);
bezierVertex(559,361+sweatY,564,357+sweatY,564,347+sweatY);
bezierVertex(564,347+sweatY,564,341+sweatY,564,339+sweatY);
endShape();
}