Project 01 – Self Portrait

my smile~

smile-portrait
//Rachel Kim
//15-104(Section C)
//rachelki@andrew.cmu.edu
//Project-01

function setup() {
    createCanvas(600, 600);
    background(206, 190, 231);
    text("p5.js vers 0.9.0 test.", 10, 15);
}

function draw() {

	//face
	noStroke();
	fill(241, 196, 163);
	ellipse(302, 266, 179, 257);

	//neck
	noStroke();
	fill(241, 196, 163);
	rect(272, 340, 70, 83);

	//mole
	noStroke();
	fill(39, 45, 44);
	ellipse(237, 227, 3, 3);

	//eyebrow 1
	noStroke();
	fill(39, 45, 44);
	beginShape();
	curveVertex(278, 232);
	curveVertex(278, 221);
	curveVertex(265, 217);
	curveVertex(251, 213);
	curveVertex(238, 211);
	curveVertex(230, 216);
	curveVertex(222, 227);
	curveVertex(233, 223);
	curveVertex(245, 220);
	curveVertex(256, 223);
	curveVertex(268, 228);
	curveVertex(278, 232);
	endShape();

	//eyebrow 2
	noStroke();
	fill(32, 45, 44);
	beginShape();
	curveVertex(305, 222);
	curveVertex(306, 231);
	curveVertex(319, 230);
	curveVertex(334, 229);
	curveVertex(349, 227);
	curveVertex(362, 227);
	curveVertex(370, 231);
	curveVertex(378, 235);
	curveVertex(375, 229);
	curveVertex(366, 222);
	curveVertex(356, 218);
	curveVertex(340, 218);
	curveVertex(327, 219);
	curveVertex(314, 221);
	curveVertex(305, 222);
	endShape();

	//eyes & eyelashes
	stroke(32, 45, 44);
	strokeWeight(4);
	noFill();
	arc(250, 250, 35, 20, TWO_PI, PI, OPEN);
	arc(340, 250, 45, 20, TWO_PI, PI, OPEN);


	//teeth
	noStroke();
	fill(255, 255, 255);
	beginShape();
	curveVertex(261, 331);
	curveVertex(268, 342);
	curveVertex(279, 350);
	curveVertex(291, 355);
	curveVertex(307, 355);
	curveVertex(318, 351);
	curveVertex(329, 346);
	curveVertex(341, 335);
	curveVertex(332, 336);
	curveVertex(318, 339);
	curveVertex(300, 341);
	curveVertex(286, 339);
	curveVertex(273, 336);
	curveVertex(261, 331);
	endShape();


	//upper lip
	noStroke();
	fill(170, 109, 98);
	beginShape();
	curveVertex(258, 328);
	curveVertex(262, 340);
	curveVertex(268, 351);
	curveVertex(275, 359);
	curveVertex(286, 366);
	curveVertex(303, 366);
	curveVertex(317, 361);
	curveVertex(330, 351);
	curveVertex(338, 344);
	curveVertex(343, 335);
	curveVertex(333, 341);
	curveVertex(320, 348);
	curveVertex(307, 352);
	curveVertex(294, 353);
	curveVertex(282, 349);
    curveVertex(271, 342);
    curveVertex(264, 335);
    curveVertex(258, 328);
    endShape();

    //bottom lip
    noStroke();
    fill(170, 109, 98);
    beginShape();
    curveVertex(258, 328);
    curveVertex(267, 334);
    curveVertex(278, 338);
    curveVertex(294, 341);
    curveVertex(308, 340);
    curveVertex(323, 339);
    curveVertex(334, 337);
    curveVertex(343, 335);
    curveVertex(338, 334);
    curveVertex(328, 336);
    curveVertex(316, 336);
    curveVertex(303, 335);
    curveVertex(293, 336);
    curveVertex(286, 334);
    curveVertex(274, 333);
    curveVertex(265, 331);
    curveVertex(258, 328);
    endShape();


	//hair
	noStroke();
	fill(39, 45, 44);
	beginShape();
	curveVertex(272, 101);
	curveVertex(226, 134);
	curveVertex(194, 187);
	curveVertex(180, 257);
	curveVertex(172, 306);
	curveVertex(158, 345);
	curveVertex(150, 391);
	curveVertex(168, 440);
	curveVertex(198, 508);
	curveVertex(218, 541);
	curveVertex(206, 585);
	curveVertex(247, 570);
	curveVertex(280, 541);
	curveVertex(288, 504);
	curveVertex(307, 464);
	curveVertex(288, 413);
	curveVertex(255, 375);
	curveVertex(234, 345);
	curveVertex(214, 292);
	curveVertex(214, 249);
	curveVertex(230, 195);
	curveVertex(263, 153);
	curveVertex(315, 138);
	curveVertex(360, 167);
	curveVertex(385, 226);
	curveVertex(389, 288);
	curveVertex(377, 337);
	curveVertex(356, 371);
	curveVertex(368, 421);
	curveVertex(411, 421);
	curveVertex(458, 405);
	curveVertex(419, 391);
	curveVertex(439, 349);
	curveVertex(434, 300);
	curveVertex(423, 253);
	curveVertex(426, 203);
	curveVertex(407, 157);
	curveVertex(372, 113);
	curveVertex(319, 97);
	curveVertex(272, 101);
	endShape();
}

Leave a Reply