fractalkitty looking for math? fractalkitty.com

Mathober 2025

partial sum

#random#trig#animation#math#polar#mathober

points1points2

let t = 0;
let points1, points2, r1, r2;
function setup() {
  createCanvas(500, 500);
  background(255);
  describe(
    "A circle on radial graph paper where the bottom right third is shaded darkest, then a third of a third lighter, then a third of a third of a third lighter and so on for 6 iterations. This ends up shading about half of the circle. The sketch has a staticky feel"
  );
  noFill();
  rectMode(CENTER);
}

function draw() {
  background(245, 250, 255, 30);
  t += 0.01;
  translate(width / 2, height / 2);
  n = 25;
  d = width / n;
  stroke(100, 110, 120, 10);
  for (let i = 0; i < n; i++) {
    push();
    rotate(((2 * PI) / n) * i);
    strokeWeight(0.5);
    line(-width / 1.5, 0, width / 1.5, 0);

    circle(0, 0, (width / n) * 2 * i);
    pop();

    for (let i = 0; i < 100; i++) {
      push();
      strokeWeight(1);
      stroke(245, 250, 255, 5);
      fill(245, 250, 255);
      x = random(-width / 2, width / 2);
      y = random(-width / 2, width / 2);
      theta = Math.atan(y / x);
      r = sqrt(x * x + y * y);
      g = (width / 25) * 10 + 10;
      if (r < g) {
        fill(150, 160, 170, 50);
      }
      if (r < g && ((theta > 0 && x >= 0) || (theta < 0 && x <= 0))) {
        if (r > 500) {
        }
        if (theta > 0 || theta < -PI / 3) {
          fill(15 + 25 * 2, 25 + 25 * 2, 35 + 25 * 2, 120);
        } else if (theta > -PI / 3 && theta < -PI / 9) {
          fill(15 + 25 * 3, 25 + 25 * 3, 35 + 25 * 3, 120);
        } else if (theta > -PI / 9 && theta < -PI / 27) {
          fill(15 + 25 * 4, 25 + 25 * 4, 35 + 25 * 4, 120);
        } else if (theta > -PI / 27 && theta < -PI / 81) {
          fill(15 + 25 * 5, 25 + 25 * 5, 35 + 25 * 5, 120);
        } else if (theta > -PI / 81 && theta < -PI / 243) {
          fill(15 + 25 * 6, 25 + 25 * 6, 35 + 25 * 6, 120);
        }
      }
      circle(x, y, 2);
      pop();
    }

    stroke(75, 85, 95, 20);
    fill(75, 85, 95);

    strokeWeight(0.5);

    noFill();
  }
  strokeWeight(1);
  stroke(150, 160, 170);
  fill(150, 160, 170, 10);
  circle(0, 0, (width / 25) * 20);
  s = (width / n) * 8;
  angleS = 0;
  angle = (2 * PI) / 3;
  for (let i = 2; i < 8; i++) {
    stroke(75, 85, 95);
    fill(15 + 25 * i, 25 + 25 * i, 35 + 25 * i, 120);
    arc(0, 0, (width / 25) * 20, (width / 25) * 20, angleS, angle);
    angleS = angle;
    angle = angle + (2 * PI) / pow(3, i);
  }

  noFill();
  strokeWeight(1);
  stroke(100, 110, 120, 30);
  rect(0, 0, width / 1.02, width / 1.02);
  rect(0, 0, width / 1.04, width / 1.04);
}