ArtSquares

Preview image for Squares

Square.pde

class Square {
  float x;
  float y;
  float z;
  float w;
  float h;
  float strokeW;
  float hue;
  int tick = 0;
  
  // 2d
  Square(float x_, float y_, float w_, float h_, float strokeW_, float hue_) {
    x = x_;
    y = y_;
    z = 0;
    w = w_;
    h = h_;
    strokeW = strokeW_;
    hue = hue_;
    tick = floor(map(floor(hue_), 0, 50, 0, 60));
  }
  
  // 3d
  Square(float x_, float y_, float z_, float w_, float h_, float strokeW_, float hue_) {
    x = x_;
    y = y_;
    z = z_;
    w = w_;
    h = h_;
    strokeW = strokeW_;
    hue = hue_;
    //tick = floor(map(floor(hue_), 0, 50, 0, 60));
    tick = floor(map(floor(hue_), 100, 10, 0, 60));
  }
  
  void update() {
    tick += 2;
  }
  
  void display() {
    push();
    
    float brightness = map((tick % 120), 0, 60, 0, 100); 
    
    translate(x, y);
    
    beginShape();
    
    noFill();
    strokeWeight(strokeW);
    stroke(hue, 100, brightness);
    
    //rect(0, 0, w, h);
    
    //vertex(0, 0, z);
    //vertex(w, 0, z);
    //vertex(w, h, z);
    //vertex(0, h, z);
    
    vertex(0, 0);
    vertex(w, 0);
    vertex(w, h);
    vertex(0, h);
    
    endShape(CLOSE);
    
    pop();
  }
}

squares.pde

Square[] sqs;

int num_sqs = 11;

void push() {
  pushMatrix();
  pushStyle();
}

void pop() {
  popStyle();
  popMatrix();
}


void setup() {
  //size(600, 600, P3D);
  size(600, 600);
  
  colorMode(HSB, 100);
  
  //ortho();
  
  sqs = new Square[ num_sqs ];
  
  float w = 200;
  float h = 200;
  float spacing = 18;
  float strokeW = 9;
  float starting_x = (0 - (w / 2) + ((num_sqs / 2) * (spacing + (strokeW / 2))));
  float starting_y = (0 - (h / 2) - ((num_sqs / 2) * (spacing + (strokeW / 2))));
  
  for(int i = num_sqs; i > 0; i--) {
    float x = (starting_x - (i * spacing));
    float y = (starting_y + (i * spacing));
    //float z = (-1 * (num_sqs - i) * spacing);
    
    //float hue = map(i, num_sqs, 1, 50, 0);
    float hue = map(i, num_sqs, 1, 100, 10);
    
    //sqs[ (i - 1) ] = new Square(x, y, z, w, h, strokeW, hue);
    sqs[ (i - 1) ] = new Square(x, y, w, h, strokeW, hue);
  }
}

void draw() {
  background(0);
  
  push();
  translate(width/2, height/2);
  
  for(Square sq : sqs) {
    sq.update();
    sq.display();
  }
  
  pop();
  
  if(frameCount == 50) { save("preview.png"); }
}
pyxol © 2023
built with React + Next.js