To create this self portrait, I experimented with simple shapes in Illustrator and then entered them into p5.js. Because I was able to move things around quickly in Illustrator first, I found this process more accessible and effective than just going to p5.js right off the bat. I had a lot of fun with considering what aspects of my appearance and personality I wanted to portray and how I could create them using the little coding knowledge I have.
hreynold-face
/* Helen Reynolds
Section E
hreynold@andrew.cmu.edu
hreynold-01
*/
function setup() {
createCanvas(400, 400);
background(140, 110, 114);
angleMode(DEGREES);
}
function draw() {
noStroke();
//hair rect
rectMode (CENTER);
fill(36, 31, 23);
rect(195, 204, 283, 191); //(x, y, w, h, radius of every corner)
//hair circle
ellipseMode (CENTER);
fill(36, 31, 23);
ellipse(193, 103, 185, 185);
//shirt rect
fill(173, 152, 157);
rect(194, 335, 269, 71);
//shirt circle
fill(173, 152, 157);
ellipse(194, 303, 269, 121);
//neck circle
fill(229, 203, 190);
ellipse(194, 245, 77, 52);
//hair cover rect left
fill(140, 110, 114);
rect(55, 150, 90, 135);
//hair cover circle left
fill(140, 110, 114);
ellipse(52, 213, 97, 97);
//hair cover rect right
fill(140, 110, 114);
rect(330, 150, 90, 135);
//hair cover circle right
fill(140, 110, 114);
ellipse(334, 214, 97, 97);
//neck rect
fill(229, 203, 190);
rect(194, 223, 78, 53);
//shadow ellipse
fill(201, 177, 167);
ellipse(194, 204, 78, 52);
//face rounded rect
fill(229, 203, 190);
rect(193, 125, 147, 176, 73);
//bubblegum ellipse
fill(234, 143, 188);
ellipse(194, 193, 53, 53);
//bubblegum sparkle
fill(255);
ellipse(204, 178, 7, 7);
//left eyebrow black ellipse
noStroke ();
fill(36, 31, 23);
ellipse(165, 112, 33, 20);
//left eyebrow beige ellipse
fill(229, 203, 190);
ellipse(165, 117, 36, 20);
//left eyebrow beige rect
fill(229, 203, 190);
rect(180, 113, 14, 23);
//right eyebrow black ellipse
noStroke ();
fill(36, 31, 23);
ellipse(221, 111, 33, 20);
//right eyebrow beige ellipse
fill(229, 203, 190);
ellipse(222, 115, 36, 20);
//right eyebrow beige rect
fill(229, 203, 190);
rect(205, 111, 14, 23);
//left eye
fill(36, 31, 23);
ellipse(163, 132, 17, 17);
//left eye sparkle
fill(255);
ellipse(167, 129.5, 7, 7);
//left eye top eyelash
stroke (0);
strokeWeight (2);
line(157, 118, 160, 125);
//left eye middle eyelash
stroke (0);
strokeWeight (2);
line(153, 122, 157, 126);
//left eye bottom eyelash
stroke (0);
strokeWeight (2);
line(150, 127, 156, 129);
//right eye
noStroke ();
fill(36, 31, 23);
ellipse(220, 131, 17, 17);
//right eye sparkle
fill(255);
ellipse(223, 129, 7, 7);
//right eye top eyelash
stroke (0);
strokeWeight (2);
line(226, 118, 224, 124);
//right eye middle eyelash
line(231, 122, 226, 126);
//right eye bottom eyelash
line(234, 126, 228, 128);
//nose shadow rect
noStroke ();
fill(201, 177, 167);
rect(192, 144, 18, 40, 9);
//nose top rect
fill(229, 203, 190);
rect(189, 141, 18, 40, 9);
//freckle 1, left to right
stroke (195, 147, 121)
strokeWeight (2);
point(150, 145);
//freckle 2
stroke (195, 147, 121)
strokeWeight (2);
point(154, 150);
//freckle 3
stroke (195, 147, 121)
strokeWeight (2);
point(156, 154);
//freckle 4
stroke (195, 147, 121)
strokeWeight (2);
point(159, 148);
//freckle 5
stroke (195, 147, 121)
strokeWeight (2);
point(161, 153);
//freckle 6
stroke (195, 147, 121)
strokeWeight (2);
point(165, 157);
//freckle 7
stroke (195, 147, 121)
strokeWeight (2);
point(164, 149);
//freckle 8
stroke (195, 147, 121)
strokeWeight (2);
point(168, 152);
//freckle 9
stroke (195, 147, 121)
strokeWeight (2);
point(173, 148);
//freckle 10
stroke (195, 147, 121)
strokeWeight (2);
point(212, 148);
//freckle 11
stroke (195, 147, 121)
strokeWeight (2);
point(216, 151);
//freckle 12
stroke (195, 147, 121)
strokeWeight (2);
point(220, 156);
//freckle 13
stroke (195, 147, 121)
strokeWeight (2);
point(220, 148);
//freckle 14
stroke (195, 147, 121)
strokeWeight (2);
point(222, 152);
//freckle 15
stroke (195, 147, 121)
strokeWeight (2);
point(226, 148);
//freckle 16
stroke (195, 147, 121)
strokeWeight (2);
point(228, 154);
//freckle 17
stroke (195, 147, 121)
strokeWeight (2);
point(230, 150);
//freckle 18
stroke (195, 147, 121)
strokeWeight (2);
point(233, 144);
//hair left ellipse
noStroke();
push();
translate(167, 60);
rotate(-25.5);
fill(36, 31, 23);
ellipse(0, 0, 121, 63);
pop();
//hair right ellipse
noStroke();
push();
translate(245, 70);
rotate(320);
fill(36, 31, 23);
ellipse(0, 0, 36, 75);
pop();
}