Self-Portrait
// Ilia Urgen
// Section B
function setup() {
createCanvas (1000, 1000); //width is 1000, height is 1000
background (164,244,255); //Dark Tan canvas background
}
function draw() {
//text
stroke (0);
strokeWeight (10);
line (100,40,40,40);
line (40,40,40,70);
line (100,70,40,70);
line (100,100,100,70);
line (100,100,40,100);
line (140,40,200,40);
line (140,40,140,100);
line (140,100,200,100);
line (140,70,200,70);
line (240,40,240,100);
line (240,100,300,100);
line (340,40,340,100);
line (340,40,400,40);
line (340,70,400,70);
line (440,70,500,70);
line (140,140,200,140);
line (140,140,140,200);
line (140,170,200,170);
line (200,140,200,170);
line (240,140,300,140);
line (240,140,240,200);
line (300,140,300,200);
line (300,200,240,200);
line (340,140,340,200);
line (340,140,400,140);
line (340,170,400,170);
line (400,140,400,170);
line (400,200,340,170);
line (440,140,500,140);
line (470,140,470,200);
line (540,140,600,140);
line (540,140,540,200);
line (540,170,600,170);
line (600,170,600,140);
line (600,200,540,170);
line (640,140,700,140);
line (640,140,640,200);
line (700,140,700,200);
line (640,170,700,170);
line (740,140,800,140);
line (770,140,770,200);
line (740,200,800,200);
line (840,140,900,140);
line (870,140,870,200);
line (940,140,940,180);
point (940,200);
line (780,870,840,870);
line (810,810,810,870);
line (780,810,840,810);
line (880,870,940,870);
line (940,870,940,810);
line (880,870,880,810);
//neck outline
noStroke();
fill (243,207,187);
rect (375,850,250,150);
//face outline
noStroke();
fill (243,207,187);
ellipse (500,600,480,660);
//left ear
arc (245,620,80,160,PI + HALF_PI,PI + HALF_PI);
//right ear
arc (755,620,80,160,PI + HALF_PI,PI + HALF_PI);
//left eye
fill (0,0,0);
ellipse (400,575,110,60);
fill (255,255,255);
ellipse (400,575,90,60);
fill (102,51,0);
ellipse (400,575,60,60);
fill (0,0,0);
ellipse (410,575,12,12);
fill (255,255,255);
ellipse (413,575,5,5);
//right eye
fill (0,0,0);
ellipse (600,575,110,60);
fill (255,255,255);
ellipse (600,575,90,60);
fill (102,51,0);
ellipse (600,575,60,60);
fill (0,0,0);
ellipse (610,575,12,12);
fill (255,255,255);
ellipse (613,575,5,5);
//nose
fill (240,190,180);
triangle (450,700,500,540,550,700);
//t-shirt
fill (187,0,0);
quad (375,920,200,1000,800,1000,625,920);
//t-shirt letters
stroke (255);
strokeWeight (6);
//C
line (395,940,445,940);
line (395,940,395,980);
line (395,980,445,980);
//M
line (475,940,475,980);
line (475,940,500,980);
line (500,980,525,940);
line (525,940,525,980);
//U
line (555,940,555,980);
line (555,980,605,980);
line (605,980,605,940);
//left eyebrow
strokeWeight (30);
stroke (55,39,45);
arc (400,518,120,30,PI,0);
//right eyebrow
strokeWeight (30);
stroke (55,39,45);
arc (600,518,120,30,PI,0);
//glasses
noFill();
strokeWeight (8);
stroke (212,175,55);
noFill ();
ellipse (400,575,150,130);
ellipse (600,575,150,130);
arc (500,570,52,50,PI,0);
line (400,510,600,510);
line (244,535,340,535);
line (660,535,754,535);
//teeth
fill (255);
stroke (255);
ellipse (500,790,105,40);
//mouth
noFill();
strokeWeight (35);
stroke (193,104,115);
arc (500,800,140,30,0, PI);
arc (500,780,140,30,PI,0);
//facial hair
stroke (55,39,45);
strokeWeight (2);
line (434,718,412,753);
line (437,718,416,752);
line (440,718,420,751);
line (443,716,424,750);
line (446,716,428,749);
line (449,716,432,748);
line (452,714,436,747);
line (455,714,440,746);
line (458,714,444,745);
line (461,712,448,744);
line (464,712,452,743);
line (467,712,456,742);
line (470,710,460,741);
line (473,710,464,740);
line (476,710,468,740);
line (479,710,472,740);
line (482,710,476,740);
line (485,710,480,740);
line (488,710,484,740);
line (491,710,488,740);
line (494,710,492,740);
line (497,710,496,740);
line (500,710,500,740);
line (503,710,504,740);
line (506,710,508,740);
line (509,710,512,740);
line (512,710,516,740);
line (515,710,520,740);
line (518,710,524,740);
line (521,710,528,740);
line (524,710,532,740);
line (527,710,536,740);
line (530,710,540,741);
line (533,712,544,742);
line (536,712,548,743);
line (539,712,552,744);
line (542,714,556,745);
line (545,714,560,746);
line (548,714,564,747);
line (551,716,568,748);
line (554,716,572,749);
line (557,716,576,750);
line (560,718,580,751);
line (563,718,584,752);
line (566,718,588,753);
//face lines
arc (240,625,30,100,HALF_PI, PI + HALF_PI);
arc (760,625,30,100,PI + HALF_PI, HALF_PI);
arc (500,875,100,30,PI,0);
//hair
strokeWeight (20);
curve(300, 20, 290, 510, 500, 270, 970, 630);
curve(270, 630, 500, 270, 700, 510, 540, 270);
curve(300, 70, 290, 510, 500, 276, 970, 600);
curve(270, 600, 500, 276, 700, 510, 300, 70);
curve(300, 70, 290, 510, 500, 270, 970, 600);
curve(270, 600, 500, 270, 700, 510, 300, 70);
curve(300, 470, 290, 510, 500, 282, 970, 570);
curve(270, 570, 500, 282, 710, 510, 300, 470);
curve(100, 470, 290, 510, 500, 270, 970, 570);
curve(270, 570, 500, 270, 710, 510, 370, 470);
curve(300, 870, 280, 510, 500, 288, 970, 540);
curve(270, 540, 500, 288, 720, 510, 300, 870);
curve(300, 870, 280, 510, 500, 270, 970, 540);
curve(270, 540, 500, 270, 720, 510, 300, 870);
curve(300, 1070, 290, 510, 500, 294, 970, 540);
curve(270, 540, 500, 294, 710, 510, 330, 1070);
curve(300, 1070, 300, 510, 500, 294, 970, 540);
curve(270, 540, 500, 294, 710, 510, 320, 1070);
curve(300, 1070, 290, 510, 500, 270, 970, 540);
curve(270, 540, 500, 270, 710, 510, 300, 1070);
curve(300, 1370, 290, 510, 500, 270, 970, 540);
curve(270, 540, 500, 270, 710, 510, 200, 1370);
curve(500, 1070, 280, 510, 500, 300, 970, 540);
curve(270, 540, 500, 300, 720, 510, 300, 1070);
curve(500, 1070, 280, 510, 500, 270, 970, 540);
curve(270, 540, 500, 270, 720, 510, 250, 1070);
curve(700, 1070, 290, 500, 500, 306, 970, 540);
curve(270, 540, 500, 306, 710, 500, 300, 1270);
curve(700, 1070, 290, 500, 500, 270, 970, 540);
curve(270, 540, 500, 270, 710, 500, 200, 1270);
curve(700, 1070, 280, 500, 500, 312, 970, 540);
curve(270, 540, 500, 312, 710, 500, 300, 1270);
curve(700, 1070, 280, 500, 500, 270, 970, 540);
curve(270, 540, 500, 270, 710, 500, 300, 1270);
curve(700, 1070, 290, 500, 500, 318, 970, 540);
curve(270, 540, 500, 318, 720, 500, 300, 1270);
curve(700, 1070, 290, 500, 500, 270, 970, 540);
curve(270, 540, 500, 270, 720, 500, 300, 1270);
curve(200, 1070, 290, 500, 500, 306, 970, 540);
curve(270, 540, 500, 306, 710, 500, 500, 1270);
curve(100, 1070, 290, 500, 500, 326, 970, 540);
curve(270, 540, 500, 306, 710, 500, 600, 1270);
curve(500, 1070, 290, 500, 500, 306, 970, 540);
curve(270, 540, 500, 306, 710, 500, 700, 1270);
curve(50, 1070, 290, 500, 500, 306, 970, 540);
curve(270, 540, 500, 306, 710, 500, 800, 1270);
curve(0, 1070, 290, 500, 500, 306, 970, 540);
curve(270, 540, 500, 306, 710, 500, 900, 1270);
curve(0, 470, 290, 500, 500, 306, 970, 540);
curve(270, 540, 500, 306, 710, 500, 900, 470);
curve(0, 470, 290, 500, 500, 306, 970, 540);
curve(270, 540, 500, 306, 710, 500, 900, 570);
curve(0, 270, 290, 500, 500, 326, 970, 540);
curve(270, 540, 500, 326, 710, 500, 900, 670);
noLoop();
}