fractalkitty looking for math? fractalkitty.com

weekly creative coding

on the grid

#noise#random#trig#vectors#interactive#animation#wcc

nf2playBinitP

let c;
let sp = [];
let cnt = 0;
let nf, nf2;
let t = 0;
let playB = true;
function setup() {
  a = random(0.01, 0.2); 
  b = random(0.2, 0.9);
  c = min(windowWidth, windowHeight) * 0.9;
  cnv = createCanvas(c, c);
  initP(int(random(100,500)));
  r1 = random(50, 120);
  g1 = random(50, 150);
  b1 = random(80, 220);
  strokeWeight(0.5);
	frameRate(30);
}
function draw() {
  if (playB) {
    cnt++;
    t = sin(cnt / 500);
    translate(c / 2, c / 2);
    background(r1, g1, b1, 15 - t);
    for (let j = 0; j < 1; j++) {
      for (let p = 0; p < sp.length; p++) {
        let n = noise(sp[p].x * a, sp[p].y * a) * TWO_PI;
        sp[p].add(cos(n * b/(t%5+1)), sin(n * b/(t%5+1)));
        px = constrain(sp[p].x, -c / 2.5, c / 2.5);
        py = constrain(sp[p].y, -c / 2.5, c / 2.5);
        if (abs(px) === c / 2.5 || abs(py) === c / 2.5) {
          x = random(-c / 2, c / 2);
          y = random(-c / 2, c / 2);
          sp[p] = createVector(x, y);
          if (frameCount === 20) {
            a = random(0.01, 0.2); 
  					b = random(0.2, 0.9);
          }
        }
        pxr = round(px / 10) * 10;
        pyr = round(py);
        stroke(
          225 - r1 * sin(p + t / 4),
          285 - g1 * sin(p + t / 4),
          355 - b1 * sin(p + t / 4)
        );
        point(pxr, -pyr);
        point(-pxr, -pyr);
        point(pyr, pxr);
        point(-pyr, pxr);
        point(px, -py);
        point(-px, -py);
        point(py, px);
        point(-py, px);
      }
    }
  }
}
function initP(n2) {
  for (let i = 0; i < n2; i++) {
    x = random(-c / 2, c / 2);
    y = random(-c / 2, c / 2);
    sp[i] = createVector(x, y);
  }
}
function keyPressed() {
  if (keyCode === 32) {
    sp = [];
    background(0);
    setup();
    draw();
  }
}
function mousePressed() {
  playB = !playB;
}