Project 1: My Self Portrait

portrait cb
function setup() {
    createCanvas(600, 600);
}

function draw() {
    background(137, 134, 76);

    //tree left base
    stroke(84, 70, 54);
    strokeWeight(10);
    line(-27, 38, 51, 200);
    noStroke();
    fill(84, 70, 54);
    rect(35, 0, 25, 600);
    
    //tree left leaves
    noStroke();
    fill(69, 67, 32, 100);
    ellipse(5, 152, 247, 105);
    fill(206, 198, 101, 100);
    ellipse(19, 254, 79, 33);
    ellipse(86, 212, 70, 30);
    ellipse(94, 78, 96, 41);
    ellipse(137, 98, 68, 29);
    fill(106, 114, 47, 150);
    ellipse(73, 25, 70, 28);

    //trees right base
    stroke(84, 70, 54);
    strokeWeight(20);
    line(420, 380, 610, 20)
    noStroke();
    fill(84, 70, 54);
    rect(500, 0, 30, 600);
    rect(405, 0, 45, 600);

    //trees right leaves
    noStroke();
    fill(106, 114, 47, 150);
    ellipse(447, 32, 256, 108);
    ellipse(556, 254, 142, 60);
    fill(69, 67, 32, 150);
    ellipse(525, 310, 84, 36);
    fill(206, 198, 101, 100);
    ellipse(508, 160, 98, 41);
    ellipse(412, 109, 52, 21);
    ellipse(340, 14, 166, 49);

    //hair back
    noStroke();
    fill(21, 17, 14);
    rect(182, 228, 238, 280);

    //left top hair behind
    noStroke();
    fill(21, 17, 14);
    ellipse(263, 228, 161, 191);

    //right top hair behind
    noStroke();
    fill(21, 17, 14);
    ellipse(317, 228, 206, 236);

    //shoulder
    noStroke();
    fill(209, 159, 134);
    rect(162, 485, 276, 134);
    ellipse(300, 486, 275, 101);

    //neck
    noStroke();
    fill(209, 159, 134);
    rect(260, 390, 80, 77);

    //face
    noStroke();
    fill(209, 159, 134);
    ellipse(301, 286, 201, 243);

    //left ear and earring
    noStroke();
    fill(209, 159, 134);
    ellipse(204, 297, 30, 66);
    fill(255);
    ellipse(201, 317, 10, 10);

    //right ear and earring
    noStroke();
    fill(209, 159, 134);
    ellipse(397, 297, 30, 66);
    fill(255);
    ellipse(399, 317, 10, 10);

    //mouth
    noStroke();
    fill(146, 89, 69);
    ellipse(301, 362, 55, 18);
    arc(301, 362, 55, 34, 0, PI);
    fill(255);
    ellipse(301, 362, 40, 5);

    //nose
    noStroke();
    fill(181, 131, 112);
    ellipse(301, 328, 28, 19);

    //left eye and brow
    noStroke();
    fill(45, 35, 32);
    ellipse(252, 292, 24, 24);
    fill(45, 35, 32);
    arc(252, 292, 34, 34, PI, TWO_PI);
    fill(255);
    ellipse(248, 290, 8, 8);
    fill(21, 17, 14);
    ellipse(245, 255, 47, 10);

    //right eye and brow
    noStroke();
    fill(45, 35, 32);
    ellipse(352, 292, 24, 24);
    fill(45, 35, 32);
    arc(352, 292, 34, 34, PI, TWO_PI);
    fill(255);
    ellipse(348, 290, 8, 8);
    fill(21, 17, 14);
    ellipse(356, 255, 47, 10);

    //top
    noStroke();
    fill(0);
    quad(194, 508, 408, 508, 398, 600, 204, 600);

    //left strap
    noStroke();
    fill(0);
    rect(202, 441, 10, 100);

    //hair on top of shoulder
    noStroke();
    fill(21, 17, 14);
    rect(340, 438, 80, 129);

    //front hair
    noStroke();
    fill(21, 17, 14);
    ellipse(202, 235, 10, 131);
    fill(21, 17, 14);
    ellipse(400, 235, 10, 131);
    fill(21, 17, 14);
    rotate(.78);
    translate(-210, -180)
    ellipse(600, 80, 187, 76);

    noLoop();
}

The most interesting part of this project was figuring out how to communicate a complex portrait through the construction of very simple elements. I had fun experimenting with different color/opacity values and layering shapes.

Leave a Reply