Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
  int gridWidth = 40; 
  int gridHeight = 40;  
 int screenWidth = 700;
  int screenHeight = 700;
  int xOffset;
 
int yOffset;

 int distX;
 
int distY;
 
PVector reactorPosition;
  ArrayList <VectorLine> vectLineList = new ArrayList<VectorLine>();

 
  void setup() {
 
  reactorPosition = new PVector(0, 0);
 
  size(700, 700);
 
  background(255);
  stroke(0);
  smooth();
  

   int xOffset = floor(width/2-(distX*gridWidth/2));
 
  int yOffset = floor(height/2-(gridHeight*distY/2));
 
  int distX = width/gridWidth+1;
    int distY = height/gridHeight+1;

      for (int i = 0; i<gridWidth; i++ ) {
 
    for (int j = 0; j<gridHeight; j++ ) {
        vectLineList.add(new VectorLine(i*distX, j*distY));
      }

   }
  };

 
  void draw() {

   background(255);
 
  for (int i = 0; i<vectLineList.size(); i++ ) {
 
    vectLineList.get(i).draw(reactorPosition);
    };
  };



  
  void mouseMoved() {
    reactorPosition.x = mouseX;

   reactorPosition.y = mouseY;
  };



  
  class VectorLine {
    PVector _pos;
 
  PVector _vector;

   float reactorScaler = .07;
  


  VectorLine(int x, int y) {

     _vector = new PVector(0, 5);
      _pos = new PVector(x, y);
 
    _vector.add(_pos);
  }

}  void draw(PVector reactor) {
   void draw(PVector _reactor) { = reactor.copy();
    float reactorDistance = dist(_reactor.x, _reactor.y, _pos.x, _pos.y);

     float scaler = reactorDistance*reactorScaler;

     PVector _reactor  = reactor.copysub(_pos); // subtract VectorLines position from the reactors position, this stroke(0);effectively gives a reactor coordinate relative  _reactor.sub(_pos);
 to our VectorLine coordinate
    _vector = _reactor.copy();
      _vector.normalize(); 
     _vector.rotate(PI/4); // 
 
    _vector.mult(scaler);
      _vector.add(_pos); 
    //
    line(_pos.x, _pos.y, _vector.x, _vector.y);  
     ellipse(_vector.x, _vector.y, 5, 5);
   }
}

 }



 

Example

This is an example solution for the exercises to create a tear-drop form.

...