For my self-portrait, I wanted something simple, something that kind of looks like/resembles my Bitmoji character.
The first difference that I wanted to change from my Bitmoji character was the hair length though. Because my hair had grown out, I wanted my self-portrait to resemble this change and so had longer hair. I tried to keep everything relatively similar to my Bitmoji but decided for my portrait to only be just below shoulder length. The result was this:
Okay – very different portraits of me but similar vibes perhaps?
I then decided to incorporate something fancy that we experimented in class and thought that hey! I should change the colour of the shirt that I’m wearing to make the portrait more Harry Potter-esque and to show other people that I do change and wash my clothes. I used the mousereleased function that would change the colour of the shirt to a random colour every time the mouse is released. It’s random because we all need a bit of colour in our lives. Changes in shirt colour could be seen here:
Here is the code that I used:
int r,g,b;
void setup() {
size(600, 600);
smooth();
}
void draw() {
background(192, 195, 242);
fill(r,g,b);
//hair
noStroke();
fill(92, 73, 47);
ellipse(300, 220, 336, 300);
rect(132, 220, 336, 500);
//head
noStroke();
fill(255, 225, 190);
ellipse(300, 300, 275, 375);
//hair fringe part
noStroke();
fill(92, 73, 47);
arc(300, 180, 300, 180, PI, TWO_PI);
arc(255, 175, 225, 120, 0, HALF_PI+QUARTER_PI+THIRD_PI);
//ears
noStroke();
fill(255, 225, 190);
ellipse(160, 300, 35, 55);
ellipse(440, 300, 35, 55);
// earrings
noStroke();
fill(0);
ellipse(158, 320, 9, 9);
ellipse(442, 320, 9, 9);
//brows
noFill();
strokeWeight(5);
stroke(150, 105, 60);
arc(235, 270, 80, 35, PI, QUARTER_PI+HALF_PI+PI);
arc(365, 270, 80, 35, QUARTER_PI+PI, TWO_PI);
//eyes
stroke(0);
strokeWeight(0.5);
fill(255);
ellipse(240, 300, 65, 50);
ellipse(360, 300, 65, 50);
noStroke();
fill(100, 78, 49);
ellipse(240, 300, 33, 43);
ellipse(360, 300, 33, 43);
noStroke();
fill(0);
ellipse(240, 300, 17, 17);
ellipse(360, 300, 17, 17);
//nose
noFill();
stroke(211, 154, 100, 100);
strokeWeight(3);
arc(300, 350, 29, 30, 0, PI);
line(312, 323, 314, 347);
line(288, 323, 285, 347);
//mouth
noFill();
strokeWeight(5);
stroke(255, 170, 150);
arc(300, 400, 75, 45, 0, PI);
//neck
noStroke();
fill(255, 225, 190);
rect(240, 445, 120, 155);
//shirt
noStroke();
//fill(236, 169, 216);
fill (r,g,b);
arc(300, 600, 420, 200, PI, TWO_PI);
fill(255, 225, 190);
ellipse(300, 500, 120, 140);
}
void mouseReleased (){
if ((mouseX > 100 && mouseX < 500) &&
mouseY > 500) {
r=int(random(255));
g=int(random(255));
b=int(random(255));
}
fill(153);
}
One thing I had to mess around with was the ordering of the different body parts to make sure that one is on top of the other or under another. As well, I had to mess around with the x and y variables to make sure that the face is proportionate. The thing I got most frustrated with though was working with the arc function. The degrees radian part took so much trial and error that I was on the verge of giving up multiple times and wanted to go with a straight line instead – good thing I didn’t though.