Portrait:
Concept:
For this assignment, I attempted my first-ever p5.js project, creating a self-portrait of my beloved cat, Luna. As a beginner, I relied on tutorials and lecture notes to learn how to craft different shapes and apply colors effectively. This project marked the beginning of my journey into coding, and I enjoyed the challenge of capturing Luna’s character on the canvas.
Code:
This is my code. I’ve aimed to keep it well-organized while providing step-by-step explanations for clarity in understanding the outcome.
function setup() {
createCanvas(400,400);
background('orange');
}
function draw(){
//luna's head
fill('gray');
noStroke();
ellipseMode(CENTER);
ellipse(200, 200, 150, 150);
fill('');
//luna's body
fill('gray');
noStroke();
arc(205, 320, 150, 150, PI, TWO_PI);
rect(130, 320, 150, 150);
//luna's left ear
fill('gray');
triangle(160, 140, 180, 80, 200, 140);
fill('white'); triangle(170, 135, 180, 85, 190, 135);
//luna's right ear
fill('gray');
triangle(240, 140, 220, 80, 200, 140);
fill('white');
triangle(230, 135, 220, 85, 210, 135);
//luna's eyes + puplis
fill('white');
ellipse(170, 180, 35, 35);
ellipse(230, 180, 35, 35);
fill('black');
ellipse(170, 180, 20, 20);
ellipse(230, 180, 20, 20);
//luna's nose
fill('pink');
triangle(200, 190, 195, 200, 205, 200);
//luna's mouth
stroke('black');
strokeWeight(2);
noFill();
arc(200, 220, 80, 40, 0, PI);
//luna's left whiskers
line(150, 200, 110, 195);
line(150, 210, 110, 205);
line(150, 220, 110, 215);
//luna's right whiskers
line(250, 200, 290, 195);
line(250, 210, 290, 205);
line(250, 220, 290, 215);
}
Reflection:
This code was a journey filled with challenges. It took time and dedication to overcome errors, and I spent hours reviewing tutorials and lecture notes. Despite the difficulties, I’m proud of the final outcome.