function setup() {
createCanvas(600, 600);
background(248, 177, 149);
var a = color(53, 92, 125); // Hair fill
fill(a);
noStroke();
rect(120, 320, 360, 300);
ellipseMode (RADIUS); // Face upper
fill (252, 235, 182);
arc(300, 250, 190, 190, PI, 0);
ellipseMode (RADIUS); // Face lower
fill (252, 235, 182);
strokeWeight (0);
arc(300, 250, 190, 250, 0, PI);
ellipseMode (RADIUS); // Hair upper left
noFill ();
stroke (53, 92, 125);
strokeWeight (60);
arc(280, 250, 190, 200, PI, -1.6);
ellipseMode (RADIUS); // Hair upper right
noFill ();
stroke (53, 92, 125);
strokeWeight (60);
arc(310, 250, 190, 200, -HALF_PI, 0);
line (90, 250, 90, 600);
line (500, 250, 500, 600);
ellipseMode(RADIUS); // Set ellipseMode to RADIUS
fill(255); // Set fill to white
strokeWeight (2);
stroke (240, 120, 24);
ellipse(200, 250, 40, 27); // Draw white ellipse using RADIUS mode
ellipseMode(CENTER); // Set ellipseMode to CENTER
fill(100); // Set fill to gray
strokeWeight (0);
ellipse(200, 245, 40, 40); // Draw gray ellipse using CENTER mode
ellipseMode(RADIUS); // Set ellipseMode to RADIUS
fill(255); // Set fill to white
strokeWeight (2);
stroke (240, 120, 24);
ellipse(400, 250, 40, 27); // Draw white ellipse using RADIUS mode
ellipseMode(CENTER); // Set ellipseMode to CENTER
fill(100); // Set fill to gray
strokeWeight (0);
ellipse(400, 245, 40, 40); // Draw gray ellipse using CENTER mode
noFill (); // Eyelash
strokeWeight (3);
arc(150, 245, 20, 5, 0, PI);
noFill (); // Eyelash
strokeWeight (3);
arc(450, 245, 20, 5, 0, PI);
noFill (); // Nose line
strokeWeight (2);
stroke (240, 120, 24);
arc(325, 270, 15, 100, HALF_PI, PI);
noFill (); // Nose arc
strokeWeight (2);
arc(310, 340, 40, 22, 0, PI);
noFill (); // Upper lip left
strokeWeight (2);
stroke (240, 120, 24);
arc(285, 400, 60, 22, -3.1, -0.3);
noFill (); // Upper lip right
strokeWeight (2);
arc(335, 400, 60, 22, -2.9, -0.2);
noFill (); // Middle lip
strokeWeight (2);
arc(308, 402, 110, 10, 0, PI);
noFill (); // Lower lip
strokeWeight (2);
arc(308, 406, 110, 45, 0, PI);
noFill (); // Eyebrow left
strokeWeight (4);
stroke (240, 120, 24);
arc(200, 200, 85, 25, PI, -0.09);
noFill (); // Eyebrow right
strokeWeight (4);
arc(400, 200, 85, 25, PI, -0.09);
}
Being completely unfamiliar and inexperienced with p5.js, I definitely struggled to produce a self-portrait that I was satisfied with. There were moments of frustration as it was difficult to achieve the geometric shapes I wanted, but through experimenting and familiarizing myself with the program I think I would be able to achieve a better outcome.