fractalkitty looking for math? fractalkitty.com

Genuary 2025

Vertical or horizontal lines only.

#random#trig#interactive#geometry#tiling#symmetry#genuary

genuary day 1

let w, n;
function setup() {
  w = min(windowWidth * 0.9, 500);
  canvas = createCanvas(w, w);
  describe(
    "tile with quadrant symmetry with patterns drawn using all horizontal and vertical lines. Some are feather-like, geometrical, or clover-like. "
  );
  stroke(50, 60, 80);
  noLoop();
  strokeWeight(0.5);
}

function draw() {
  push();
  translate(w / 2, w / 2);
  n = int(randomGaussian(10, 50));
  if (n === 0) {
    n = 10;
  }
  background(230, 235, 240);
  for (let j = 0; j < 4; j++) {
    push();
    scale(0.5, 0.5);
    if (j === 0) {
      translate(-w / 2, -w / 2);
    } else if (j === 1) {
      translate(-w / 2, w / 2);
      rotate(-PI / 2);
    } else if (j === 2) {
      translate(w / 2, -w / 2);
      rotate(PI / 2);
    } else {
      translate(w / 2, w / 2);
      rotate(PI);
    }
    for (let i = -w / 2; i < w / 2; i += 0.1) {
      l = int(
        abs(
          random(i, min(i * 1.5, w / 2 - 5 * i)) * sin(i / n) -
            (i / 2) * cos(i / n / 4)
        )
      );
      if (l % 2 === 0) {
        line(i, i, i + l, i);
      } else {
        line(i, i, i, i + l);
      }
    }
    pop();
  }
  pop();
}

function mousePressed() {
  setup();
  draw();
  return false;
}
function touchStarted() {
  if (mouseY < 0 || mouseY > height || mouseX < 0 || mouseX > width) {
    return true;
  }
  setup();
  draw();
  return false;
}

function keyPressed() {
  if (keyCode === 83) {
    save(cnv, "tile", "jpg");
  }
}