For this project is used P5.js. to create a self portrait.
Here is the code I used to make my portrait.
function setup() { createCanvas(600, 600); } function draw() { background(170,214,255); ; fill(221,218,218); strokeWeight(1); //ground fill(44,45,45); rect(0,300, 610,300);//horizon line fill(174,186,183); triangle(0,300,200,300,0,600);//left side walk triangle(600,300,400,300,600,600);//right side walk fill(50,167,81); triangle(0,300,150,300,0,445);//left grass triangle(600,300,450,300,600,445);//right grass //creepy figure fill(36); triangle(70,106,115,135,70,200); fill(336,0,0); ellipse(77,140,10,10);//left eye ellipse(93,150,10,10)//right eye fill(0); ellipse(93,150,5,5)//pupil fill(255); triangle(78,160,92,160,78,170);//smile //tree fill(99,74,52) rect(0,150,40,200)//stump fill(43,88,49); rect(0,80,80,230);//bush //back hair fill(0,0,0); arc(300, 390, 340, 700, radians(180), radians(0)); // body fill(255); ellipse(300,520,248,400); fill(246,226,212); //hand strokeWeight(1.5); fill(0); rect(79,187,2,10);//hand line(80,190,70,180);//topfinger line(80,192,68,186);//2nd line(80,194,68,189);//3rd line(80,197,69,193);//3rd line(80,187,76,180);//3rd //shoulder strokeWeight(1); fill(92); arc(229,630, 120,550,radians(180),radians(270));//left shoulder arc(373, 630, 120, 550,radians(270),radians(0));//right //neck fill(246,226,212); ellipse(300,340,50,50); //jacket fill(92); rect(220, 350, 60, 500);//left rect(320, 350, 60, 500);//right //pocket rect(335,400,35,45);//right //hoodie fill(92); triangle(220,350,280,320,280, 450);//left triangle(320,320,380,350,320, 450);//right //ears fill(246,226,212); ellipse(180,220,40,50);//left ear ellipse(420,220,40,50);//right ear //head fill(246,226,212); ellipse(300,200,235,260); //nose ellipse(298,250,40,20); //smile line(255,270,300,300);//left smile line(300,300,347,270);//right smile //glasses fill(255,255,255); rect(210,182,60,50);//left eye glass rect(325,182,60,50);//right eye glass line(270,210,325,210);//glass bridge //eyes fill(0,0,0); ellipse(220,221,20,20);//left eye ellipse(335,221,20,20);//right eye //eyebrows fill(0); strokeWeight(4); line(210,156,268,150);//left eyebrow line(320,150,373,170);//left eyebrow //bangs fill(0); triangle(370,80, 239,65, 161, 200);//Left bang triangle(359,68, 300,68, 435, 195);//right bang }
For this project I created my own brushes using processing. Here is a picture I drew using my brushes.
Here is the code you can use to play with the brushes on processing.
var img; var initials ='ki'; // your initials var choice = '1'; // starting choice, so it is not empty var screenbg = 240; // off white background function preload() { // preload() runs once, it may make you wait img = loadImage('ocean1.jpg'); // cat.jpg needs to be next to this .js file img2 = loadImage('ocean2.jpg'); img3=loadImage('sky.jpg'); // you can link to an image on your github account // img = loadImage('https://dma-git.github.io/images/74.png'); } function setup() { createCanvas(600, 400); // canvas size background(screenbg); // use our background screen color } function draw() { if (keyIsPressed) { choice = key; // set choice to the key that was pressed clear_print(); // check to see if it is clear screen or save image } if (mouseIsPressed){ newkeyChoice(choice); // if the mouse is pressed call newkeyChoice } } function newkeyChoice(toolChoice) { //toolchoice is the key that was pressed // the key mapping if statements that you can change to do anything you want. // just make sure each key option has the a stroke or fill and then what type of // graphic function if (toolChoice == '1' ) { // first tool, black line strokeWeight(1); stroke('#000000'); line(mouseX, mouseY, pmouseX, pmouseY); } else if (toolChoice == '2') { // second tool,white transparent small fill(255,20); stroke(0, 0); ellipse(mouseX, mouseY,30,30); } else if (toolChoice == '3') { // third tool, blue whale tail fill(56,58,96); stroke(0, 0); ellipse(mouseX, mouseY,10,10); } else if (toolChoice == '4') {//fourth ,sky blue ellipse fill(148,208,251); stroke(0, 0); ellipse(mouseX, mouseY,100,100); } else if (toolChoice == '5') { //fifth tool,white ellipe large fill(243,10); stroke(0, 0); ellipse(mouseX, mouseY, 40,40); // make testbox do something! // line(mouseX, mouseY, pmouseX, pmouseY); } else if (toolChoice == '6') {//sixth tool, yellow fill(231,236,101); stroke(0, 0); ellipse(mouseX, mouseY,50,50); } else if (toolChoice == '7') {//seventh tool, light blue whale fill(133,134,158); stroke(0, 0); ellipse(mouseX, mouseY,10,10); } else if (toolChoice == '8') {//eight tool, blue larger fill(56,58,96); stroke(0, 0); ellipse(mouseX, mouseY,30,30); } else if (toolChoice == '9') {//ninth tool, blue water spray fill(29,149,188); stroke(0, 0); ellipse(mouseX, mouseY,10,10); } else if (toolChoice == '0') {//tenth tool, blue line strokeWeight(1); stroke(56,58,96); line(mouseX, mouseY, pmouseX, pmouseY); } else if (toolChoice == 'g' || toolChoice == 'G') { // g places the image we pre-loaded image(img, mouseX-25, mouseY-25, 50, 50); } else if (toolChoice == 's' || toolChoice == 'S') { // g places the image we pre-loaded image(img2, mouseX-25, mouseY-25, 50, 50); } else if (toolChoice == 'r' || toolChoice == 'R') { // g places the image we pre-loaded image(img3, mouseX-25, mouseY-25, 50, 50); } } function testbox(r, g, b) { // this is a test function that will show you how you can put your own functions into the sketch x = mouseX; y = mouseY; fill(r, g, b); rect(x-50, y-50, 100, 100); } function clear_print() { // this will do one of two things, x clears the screen by resetting the background // p calls the routine saveme, which saves a copy of the screen if (key == 'x' || key == 'X') { background(screenbg); // set the screen back to the background color } else if (key == 'p' || key == 'P') { saveme(); // call saveme which saves an image of the screen key = ""; // reset the key so that it doesn't keep taking screenshots } } function saveme(){ //this will save the name as the intials, date, time and a millis counting number. // it will always be larger in value then the last one. filename=initials+day() + hour() + minute() +second(); saveCanvas(filename, 'jpg'); // } }
I created an interactive game using processing. In this game you are a dog trying to catch the tennis ball before the others at a dog park. I made the ball a little bit smaller so it's more difficult to touch the ball. If you win you become a happy tired doggo. Please click the image below to play the game!