//based on Red Blouse (Big Ada) (1961) by Alex Katz int factor = 30; float hue = 17; float sat = 92; color jacketColor; void setup() { size(1275, 1245); colorMode(HSB, 360, 100, 100, 100); background(209, 31, 86); smooth(); // Set a hue value for each key } void keyPressed() { if (key == CODED) { if (keyCode == UP) { hue = constrain(hue + 10, 0, 359); } else if (keyCode == DOWN) { hue = constrain(hue - 10, 0, 359); } else if (keyCode == LEFT) { sat = constrain(sat - 10, 10, 100); } else if (keyCode == RIGHT) { sat = constrain(sat + 10, 10, 100); } } } void draw() { jacketColor = color(hue, sat, 85); //hue = (int)((mouseX + mouseY)%360); noStroke(); //image(img, 0, 0, width, height); //GRASS fill(96, 45, 69); beginShape(); vertex(0, 25 * factor); bezierVertex(0, 25 * factor, 15.9 * factor, 18.8 * factor, 42.5 * factor, 21 * factor); vertex(42.5 * factor, 41.5 * factor); vertex(0, 41.5 * factor); endShape(); //NECK fill(30, 13, 96); quad(27 * factor, 18 * factor, 33 * factor, 18 * factor, 33 * factor, 28 * factor, 25.5 * factor, 39 * factor); //JACKET fill(jacketColor); rect(24 * factor, 38 * factor, 5 * factor, 10 * factor); //right side of jacket beginShape(); vertex(26.5 * factor, 41.5 * factor); bezierVertex(26.5 * factor, 41.5 * factor, 25.15 * factor, 35.9 * factor, 28.2 * factor, 31.3 * factor); bezierVertex(31.4 * factor, 27 * factor, 33.2 * factor, 27.15 * factor, 33.2 * factor, 27.15 * factor); bezierVertex(33.2 * factor, 27.15 * factor, 36.1 * factor, 28.8 * factor, 34.25 * factor, 29.6 * factor); bezierVertex(32.2 * factor, 30.5 * factor, 32.8 * factor, 27.5 * factor, 35.25 * factor, 31.1 * factor); bezierVertex(40 * factor, 34.75 * factor, 38.9 * factor, 35.1 * factor, 39.25 * factor, 41.5 * factor); endShape(); //left side of jacket beginShape(); vertex(25.4 * factor, 41.5 * factor); vertex(26.15 * factor, 28.4 * factor); bezierVertex(26.15 * factor, 28.4 * factor, 22.1 * factor, 29.1 * factor, 22.9 * factor, 31.1 * factor); bezierVertex(23.8 * factor, 33.2 * factor, 25.5 * factor, 27.5 * factor, 20.8 * factor, 32.5 * factor); bezierVertex(16 * factor, 36.6 * factor, 20 * factor, 60 * factor, 25.4 * factor, 41.5 * factor); endShape(); //HAIR fill(23, 31, 18); beginShape(); vertex(30.9 * factor, 22.4 * factor); bezierVertex(29.5 * factor, 24.9 * factor, 31.15 * factor, 29.8 * factor, 34.25 * factor, 26.8 * factor); bezierVertex(37.4 * factor, 23.9 * factor, 35.1 * factor, 11.1 * factor, 28.8 * factor, 10.6 * factor); bezierVertex(22.35 * factor, 10.1 * factor, 22.6 * factor, 18 * factor, 22.6 * factor, 18 * factor); bezierVertex(22.6 * factor, 18 * factor, 22.7 * factor, 18.25 * factor, 22 * factor, 19.5 * factor); bezierVertex(21.3 * factor, 20.9 * factor, 19.9 * factor, 23.5 * factor, 22.9 * factor, 25.75 * factor); bezierVertex(25.9 * factor, 27.9 * factor, 28.6 * factor, 27.2 * factor, 25.9 * factor, 24.85 * factor); bezierVertex(23.25 * factor, 22.25 * factor, 24.9 * factor, 11.3 * factor, 28.35 * factor, 14.35 * factor); bezierVertex(32.5 * factor, 17.7 * factor, 27.5 * factor, 14.5 * factor, 30.9 * factor, 22.4 * factor); endShape(); //FACE fill(30, 13, 96); beginShape(); vertex(26.2 * factor, 24.8 * factor); bezierVertex(25.5 * factor, 24.85 * factor, 30.9 * factor, 24.75 * factor, 30.5 * factor, 19 * factor); bezierVertex(30.5 * factor, 14.5 * factor, 27.9 * factor, 12.9 * factor, 25.9 * factor, 12.9 * factor); bezierVertex(23.9 * factor, 12.9 * factor, 23 * factor, 16 * factor, 23.25 * factor, 19.25 * factor); bezierVertex( 23.5 * factor, 22.75 * factor, 25 * factor, 24.9 * factor, 26.2 * factor, 24.8 * factor); endShape(); //EYES noFill(); stroke(23, 31, 18); bezier(26.9 * factor, 18.1 * factor, 26.9 * factor, 18.1 * factor, 27.5 * factor, 17 * factor, 28.8 * factor, 18.2 * factor); bezier(25.2 * factor, 18 * factor, 25.2 * factor, 18 * factor, 24.1 * factor, 17.1 * factor, 23.5 * factor, 18.25 * factor); fill(23, 31, 18); //right eyebrow beginShape(); noStroke(); fill(23, 31, 18); vertex(29.6 * factor, 17.5 * factor); bezierVertex(29.6 * factor, 17.5 * factor, 29.5 * factor, 16.25 * factor, 26.5 * factor, 17 * factor); bezierVertex(26.5 * factor, 17 * factor, 26.4 * factor, 17.2 * factor, 27.1 * factor, 17.2 * factor); bezierVertex(27.1 * factor, 17.2 * factor, 28.25 * factor, 16.3 * factor, 29.6 * factor, 17.5 * factor); endShape(); //left eyebrow beginShape(); vertex(25.6 * factor, 17.6 * factor); bezierVertex(25.6 * factor, 17.6 * factor, 24.8 * factor, 16.2 * factor, 23.2 * factor, 16.9 * factor); bezierVertex(23.2 * factor, 16.9 * factor, 23.1 * factor, 17.15 * factor, 23.2 * factor, 17.2 * factor); bezierVertex(23.2 * factor, 17.2 * factor, 24.2 * factor, 16.25 * factor, 25.6 * factor, 17.6 * factor); endShape(); //LIPS fill(17, 92, 85); beginShape(); vertex(24.8 * factor, 22.15 * factor); bezierVertex(25 * factor, 23 * factor, 27 * factor, 23 * factor, 27.35 * factor, 22.15 * factor); endShape(); fill(17, 92, 85); //ellipse(22.9 * factor, 25.75 * factor, 5, 5); //ellipse(26.25 * factor, 27 * factor, 5, 5); }