Ass­i­g­n­m­e­n­t­1­-­b­l­a­c­k­h­o­l­e­(­T­e­s­t­)

by danlin feng

DESIGN BRIEF

My project was inspired by the black hole, I pick the topic "Movement and Energy", but I want to express my idea in a different way. I use the grid to express the distortion of the gravity ,which could be the symbol of the energy of the black hole.In terms of "Movement", the shape and the position of the energy are stable, but the purple and white gradient around the hole illustrate the change of the energy which inside the hole, the spiral at the centre of the hole represent something to want to escape from the energy. The whole idea was inspired by Matt Delbridge https://dribbble.com/shots/2552073-Black-Holes and Dave Whyte https://dribbble.com/shots/1728616-Bubbles

DESIGN PROCESS

  1. THE GRAVITY GRID In this section, I decide to use the grid to illustrate the space change around the black hole. So I tried to use the rotate() function combine with the line() function. I set the centre point of the line to where 100 pixels above the line, after the rotation, which can leave a shape like an ellipse. For the mystery feeling, I choose dark purple as the color of gravity grid
  • Show Sketch
/** @peep sketchcode */
float angle ; // Current angle
float radius; //the raius of the big circle 
int diameter; //the diameter of each small circle
float speed; // the offset of each circle
// Set the RGB
int R;
int G;
int B;
 
void setup() {
  size(400, 400);
  noStroke();
  smooth();
  noFill();
  //Set the diameter of each small circle as random
  diameter=int(random(5, 10));
  //using condition to limit the arrangment of the color change
  if (R>100) {
    R=int(random(0, 200)-100);
  } else {
    R=int(random(0.255)-50);
  }
  if (G<100) {
    G=int(random(0, 255)-50);
  } else {
    G=int(random(0.200))-100;
  }
  B=int(random(0, 50));
}
void draw() {
  // give a initial value to the offset
  speed = 0.1;
  background(5);
  translate(width/2, height/2);//set the centre point
  strokeWeight(2);
  //draw the gravity line
  drawLine();
}
//gravity grid
void drawLine() {
  strokeWeight(1);
  stroke(225, 55, 225, 50);
  for (int i=0; i< 100; i++) {
    rotate(PI/50);
    line(-width, 100, width, 100);
  }
}
  1. HALO AROUND THE BLACKHOLE After searching on the google, I found the black hole are always around by two new moon shape halo. Thus, I use the same idea of making gravity grid, but increase intense of the loop, and reduce its running times. In order to illustrate the light effect, I choose white as the halo’s color.
  • Show Sketch
/** @peep sketchcode */
float angle ; // Current angle
float radius; //the raius of the big circle 
int diameter; //the diameter of each small circle
float speed; // the offset of each circle
// Set the RGB
int R;
int G;
int B;
 
void setup() {
  size(400, 400);
  noStroke();
  smooth();
  noFill();
  //Set the diameter of each small circle as random
  diameter=int(random(5, 10));
  //using condition to limit the arrangment of the color change
  if (R>100) {
    R=int(random(0, 200)-100);
  } else {
    R=int(random(0.255)-50);
  }
  if (G<100) {
    G=int(random(0, 255)-50);
  } else {
    G=int(random(0.200))-100;
  }
  B=int(random(0, 50));
}
void draw() {
  // give a initial value to the offset
  speed = 0.1;
  background(5);
  translate(width/2, height/2);//set the centre point
  strokeWeight(2);
  // draw the new moon shape halo around the black hole
  drawLine2();
  rotate(PI*0.4);
  drawLine2();
}
 // new moon shape halo around the black hole
void drawLine2() {
  strokeWeight(2);
  stroke(225, 255, 200, 20);
  for (int i=0; i< 30; i++) {
    rotate(PI/50);
    line(-width, 200, width, 100);
  }
}
  1. THE SPIRAL IN THE CENTER In this part, I want to show the rotation and suction of the black hole and coincidently, the work of Dave Whyte attract my attention. So I decide to imitate Dave’s work in this part, using the circle to constitute a spiral picture. Considering the change of the energy inside the black hole, I choose to use random() function realizing the color change of the spiral, which could imply the change of the energy.
  • Show Sketch
/** @peep sketchcode */
float angle ; // Current angle
float radius; //the raius of the big circle 
int diameter; //the diameter of each small circle
float speed; // the offset of each circle
// Set the RGB
int R;
int G;
int B;
 
void setup() {
  size(400, 400);
  noStroke();
  smooth();
  noFill();
  //Set the diameter of each small circle as random
  diameter=int(random(5, 10));
  //using condition to limit the arrangment of the color change
  if (R>100) {
    R=int(random(0, 200)-100);
  } else {
    R=int(random(0.255)-50);
  }
  if (G<100) {
    G=int(random(0, 255)-50);
  } else {
    G=int(random(0.200))-100;
  }
  B=int(random(0, 50));
}
void draw() {
  // give a initial value to the offset
  speed = 0.1;
  background(5);
  translate(width/2, height/2);//set the centre point
  strokeWeight(2);
  //The loop below achieve the rotate spiral
  // the inside loop is aiming to draw the small circle rotating around the centre. 
  // The outside loop achive the different layer of the figure.
  for (int j =0; j<7; j++) {
    radius=j*10;
    speed+=0.2;
    for (float i = 0; i<2*PI; i+=PI/9) {
      stroke(R-j*20, G-j*20, B-j*20);
      angle = speed*PI-i; // Update the angle
      float x =  (cos(angle) * radius);
      float y =  (sin(angle) * radius);
      ellipse(x, y, diameter, diameter);
    }
  }
 
}
  1. THE WHITE AROUND THE BLACK HOLE For the better look, I want to make a gradient effect around the black hole. I choose the same idea of making gravity grid, make two new moon shape halo overlap on the graviy grid. I increase the strokeweight of the white line for the lighter effect
  • Show Sketch
/** @peep sketchcode */
float angle ; // Current angle
float radius; //the raius of the big circle 
int diameter; //the diameter of each small circle
float speed; // the offset of each circle
// Set the RGB
int R;
int G;
int B;
 
void setup() {
  size(400, 400);
  noStroke();
  smooth();
  noFill();
  //Set the diameter of each small circle as random
  diameter=int(random(5, 10));
  //using condition to limit the arrangment of the color change
  if (R>100) {
    R=int(random(0, 200)-100);
  } else {
    R=int(random(0.255)-50);
  }
  if (G<100) {
    G=int(random(0, 255)-50);
  } else {
    G=int(random(0.200))-100;
  }
  B=int(random(0, 50));
}
void draw() {
  // give a initial value to the offset
  speed = 0.1;
  background(5);
  translate(width/2, height/2);//set the centre point
  strokeWeight(2);
 
  // draw the purple halo around the black hole
  drawLine3();
  rotate(PI*0.4);
  drawLine3();
}
 
//purple halo around the black hole
void drawLine3() {
  strokeWeight(4);
  stroke(225, 255, 200, 10);
  for (int i=0; i< 30; i++) {
    rotate(PI/50);
    line(-width, 100, width, 100);
  }
}

FINAL RESULT

The final work achieve the following things  The color change of he spiral  The gradient effect around black hole  The outside halo  The feel of the gravity

  • Show Sketch
/** @peep sketchcode */
float angle ; // Current angle
float radius; //the raius of the big circle 
int diameter; //the diameter of each small circle
float speed; // the offset of each circle
// Set the RGB
int R;
int G;
int B;
 
void setup() {
  size(400, 400);
  noStroke();
  smooth();
  noFill();
  //Set the diameter of each small circle as random
  diameter=int(random(5, 10));
  //using condition to limit the arrangment of the color change
  if (R>100) {
    R=int(random(0, 200)-100);
  } else {
    R=int(random(0.255)-50);
  }
  if (G<100) {
    G=int(random(0, 255)-50);
  } else {
    G=int(random(0.200))-100;
  }
  B=int(random(0, 50));
}
void draw() {
  // give a initial value to the offset
  speed = 0.1;
  background(5);
  translate(width/2, height/2);//set the centre point
  strokeWeight(2);
  //The loop below achieve the rotate spiral
  // the inside loop is aiming to draw the small circle rotating around the centre. 
  // The outside loop achive the different layer of the figure.
  for (int j =0; j<7; j++) {
    radius=j*10;
    speed+=0.2;
    for (float i = 0; i<2*PI; i+=PI/9) {
      stroke(R-j*20, G-j*20, B-j*20);
      angle = speed*PI-i; // Update the angle
      float x =  (cos(angle) * radius);
      float y =  (sin(angle) * radius);
      ellipse(x, y, diameter, diameter);
    }
  }
  //draw the gravity line
  drawLine();
  // draw the new moon shape halo around the black hole
  drawLine2();
  rotate(PI*0.4);
  drawLine2();
  // draw the purple halo around the black hole
  drawLine3();
  rotate(PI*0.4);
  drawLine3();
}
//gravity grid
void drawLine() {
  strokeWeight(1);
  stroke(225, 55, 225, 50);
  for (int i=0; i< 100; i++) {
    rotate(PI/50);
    line(-width, 100, width, 100);
  }
}
 // new moon shape halo around the black hole
void drawLine2() {
  strokeWeight(2);
  stroke(225, 255, 200, 20);
  for (int i=0; i< 30; i++) {
    rotate(PI/50);
    line(-width, 200, width, 100);
  }
}
//purple halo around the black hole
void drawLine3() {
  strokeWeight(4);
  stroke(225, 255, 200, 10);
  for (int i=0; i< 30; i++) {
    rotate(PI/50);
    line(-width, 100, width, 100);
  }
}

REFERENCE

Tutorial 5 PP11-12 https://elearning.sydney.edu.au/bbcswebdav/pid-3564268-dt-content-rid-16823236_1/courses/2016_S1C_IDEA9103_ND/Design%20Programming%20Lecture%2005b%20-%20Motions.pdf

Comments

Nobody has said anything yet.