logo

ICM – Week 1 – Portrait of Dora Maar

Primitive shapes plus portraiture naturally made me think of Picasso. I had it in mind to write a Processing sketch as a copy tribute to the great painter. I found this:

I have no idea who Dora Maar was, but I kind of enjoy the idea that many years after the original portrait, here she was being painted again, in a medium that she never imagined.

Here’s the sketch: http://jamesborda.com/processing/week1b/ However, I just uploaded it to the web and found that the JavaScript version is significantly different from the native Processing version. I’ve taken two screen grabs to compare. My Processing version is on the left, Javascript on the right:

Hopefully we’ll get a chance to figure that out.

I started out freehand, putting shapes on the page and adjusting them as necessary. Then I realized that was going to take forever. So I cheated:

There was still a lot of fiddling to do, and it was pretty laborious to get every vertex into the right place. Toward the end I realized it would make a lot more sense to find all the common points or vertices, assign them to variables, and then adjust the variables accordingly. So I made this to help that process:

Dora Maar point map

Unfortunately I didn’t have time to code an improved sketch, but that will come next week.

I suppose I might as well throw this in here too, a little experiment I was doing with mouse coordinate variables. http://jamesborda.com/processing/week1a/


Dora Maar code:


//DORA MAAR
size(380,475);
background(#FFFF00);
smooth();

//BROWN BACKGROUND
fill(#330011);
quad(120,0,380,0,380,475,240,475);

//OLIVE BACKGROUND CURVE
fill(#112200);
stroke(0,0,0,0);
bezier(120,-10,400,60,380,290,320,380);

//OLIVE BACKGROUND TRIANGLE
triangle(320,380,335,450,280,440);

//ORANGE FACECURVE
fill(#CC9900);
stroke(0);
strokeWeight(10);
bezier(120,0,300,100,360,290,240,480);

//***other junk that I tried trying to get the face right***
//arc(0,300,350,350,0.78,2.35);
//bezier(120,0,100,-20,220,475,200,495);
//curve(-100,100,120,0,240,475,-50,475);
//bezier(-100,100,120,0,240,475,-50,475);
//ellipse(0,270,590,590);
//arc(0,280,600,600,

//BLUE FACE TRIANGLE
fill(#0088FF);
strokeWeight(0);
quad(146,120,200,61,218,80,238,460);

//GREEN NOSE
fill(#669944);
stroke(#669944);
quad(120,0,30,230,115,240,168,180);

bezier(30,230,30,260,60,300,115,240);

fill(0,0,0,0);
stroke(0);
strokeWeight(10);
bezier(30,230,30,260,60,300,115,240);

line(120,0,30,230);

//NOSTRILS
strokeWeight(4);
line(40,240,48,248);
line(56,256,64,260);

//PURPLE MUSTACHE
fill(#220066);
stroke(0,0,0,0);
strokeWeight(0);
quad(115,240,116,315,190,290,168,180);

stroke(0);
strokeWeight(5);
line(115,240,116,315);

line(150,230,150,270);

//SMALL EYE
stroke(0);
strokeWeight(7);
fill(#DDDD00);
ellipse(124,110,35,35);
fill(0);
ellipse(124,110,7,7);

//SMALLEST EYE
fill(0);
ellipse(67,110,7,7);

//OTHER SMALLEST EYE
ellipse(303,180,7,7);

//BLACK BISECTING LINE
fill(0);
stroke(0);
strokeWeight(10);
line(120,0,240,475);

//BIG EYE
stroke(0);
strokeWeight(7);
fill(#EEEEBB);
//curve(130,430,150,170,260,170,280,430);
curve(148,440,168,180,278,180,298,440);

stroke(0);
strokeWeight(7);
fill(#EEEEBB);
//curve(130,-90,150,170,260,170,280,-90);
curve(148,-80,168,180,278,180,298,-80);

fill(#330066);
stroke(#333300);
strokeWeight(3);
ellipse(223,180,50,50);

fill(0);
strokeWeight(1);
ellipse(223,180,25,25);

//BLUE UPPER LIP
fill(#0088FF);
stroke(0);
strokeWeight(7);
triangle(116,315,190,290,220,315);

//UMBER CHIN
fill(#99CC33);
quad(240,480,200,320,125,345,150,480);

//BLUE CHIN SHADOW
fill(0,0,0,0);
stroke(#0088FF);
strokeWeight(10);
//bezier(130,350,135,355,220,375,209,360);
//bezier(150,365,135,355,220,375,189,340);
//bezier(150,365,155,375,200,355,189,380);
bezier(145,360,155,365,200,375,199,370);

//PINK LOWER LIP
fill(#CC6699);
stroke(0,0,0,0);
strokeWeight(0);
triangle(125,345,214,365,200,320);

stroke(0);
strokeWeight(5);
bezier(125,345,135,355,220,375,214,365);

line(200,320,125,345);
line(240,480,200,320);

//BLUE CIRCLE AT BOTTOM
stroke(0);
strokeWeight(7);
fill(#2200CC);
ellipse(165,460,130,130);

//GREEN RECT AT BOTTOM
stroke(0);
strokeWeight(10);
fill(#338844);
rect(70,460,250,35);

 

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Post Details

Posted: September 19, 2011

By:

Comments: 0

Seo