Week 2 – Simple Work of Art

I was unsure how to approach this assignment. I am new to coding, and I am also not an artist in any way, shape, or form. Coming up with ideas was difficult, as I am not used to looking for inspiration and executing the vision. Most of my initial ideas were to try and replicate or recreate existing pieces of art, but I felt that was too uncreative. When I began to formulate my own ideas, I quickly became frustrated, as I would often bite off more than I could chew, and very quickly realize that I could not execute my own vision. In the end, I settled on trying to recreate a picture I took recently of a sunset over the beach.

My beach photo

I thought that this would provide some new challenges, while also not being too busy, and hopefully looking good in the end. I was looking forward to figuring out the gradient, and getting some movement in the grass and the sun. I basically wanted to create a GIF. The toughest thing for me to work out was the grass, which I wanted to move. I tried creating random ellipses, at first, but I didn’t like the way it looked. In the end, I used arcs, which I think worked out well. I also got the sun to set behind the sand and reappear at the top of the screen, which I thought was a cool effect.

float x = 0;
float y = 0;
float circleY;
float ySpeed=2;

void setup(){
  size(680,780);
  // Define colors
  b1 = color(255,218,185);
  b2 = color(188,143,143);
  c1 = color(255);
  c2 = color(0);
  circleY=height/3;

  //noLoop();
}

int Y_AXIS = 1;
int X_AXIS = 2;
color b1, b2, c1, c2;

void draw() {
//sky
  setGradient(0, 0, width, height/2, b2, b1, X_AXIS);
//sun
  stroke(255,215,0);
  fill(255);
  ellipse(0+width/5,circleY,100,100);
  circleY = circleY + ySpeed;
  if(circleY>height/1.5){
    circleY=-100;
  }
//sand
  fill(255,222,173);
  noStroke();
  quad(0,height/2,width,height/2,width,height,0,height/1.3);
//road
  fill(105);
  noStroke();
  quad(0,height/1.3,width,height/1.1,width,height,0,height);
  grass();
}

  void setGradient(int x, int y, float w, float h, color c1, color c2, int axis ) {
  noFill();
  if (axis == X_AXIS) {
    for (int i = x; i <= x+h; i++) {
      float inter = map(i, x, x+h, 0, 1);
      color b = lerpColor(b1, b2, inter);
      stroke(b);
      line(x, i, x+w, i);
      }
    }
  }

void grass() {
  for (int i =0; i<width; i+=1) {
    stroke(85,107,47);
    noFill();
    arc(i+random(8), height/1.5-random(height/6), i, 100, radians(0), radians(45));
  }
}

 

Leave a Reply