fractalkitty looking for math? fractalkitty.com

all

Salem Manholes

#trig#physics#data

myDatatablecentroidplotXplotY

let myData;
let table;
function preload() {
  myData = loadTable("/assets/manholes.csv");
}

function setup() {
  createCanvas(600, 600);
  table = myData.getArray();
  stroke(0, 50, 70);
  strokeWeight(1.4);
  noLoop();
  maxX = 0;
  minX = 9999999999999999;
  maxY = 0;
  minY = 9999999999999999;
  points = [];
  for (let i = 1; i < table.length; i++) {
    valX = table[i][0];
    valY = table[i][1];
    points[i - 1] = [table[i][0], table[i][1]];
    if (valX > maxX) {
      maxX = valX;
    }
    if (valX < minX) {
      minX = valX;
    }
    if (valY > maxY) {
      maxY = valY;
    }
    if (valY < minY) {
      minY = valY;
    }
  }

  let centroid = points.reduce(
    (acc, val) => {
      return [acc[0] + val[0] / points.length, acc[1] + val[1] / points.length];
    },
    [0, 0]
  );
  cx = map(centroid[0], minX, maxX, 100, width - 100);
  cy = map(centroid[1], minY, maxY, height - 100, 100);
}
function draw() {
  background(255);
  for (let r = 1; r < table.length; r++) {
    let x = table[r][0];
    let y = table[r][1];
    let plotX = map(x, minX, maxX, 100, width - 100);
    let plotY = map(y, minY, maxY, height - 100, 100);
    point(plotX, plotY);
  }
  fill(0, 50, 70);
  beginShape();
  vertex(0, 0);
  vertex(0, width / 2);
  r = width / 2 - 20;
  for (let i = 0; i <= PI; i += 0.01) {
    vertex(width / 2 - r * cos(i), width / 2 - r * sin(i));
  }
  vertex(width, width / 2);
  vertex(width, 0);

  endShape();
  beginShape();
  vertex(0, width);
  vertex(0, width / 2);
  r = width / 2 - 20;
  for (let i = PI; i <= TWO_PI; i += 0.01) {
    vertex(width / 2 + r * cos(i), width / 2 - r * sin(i));
  }
  vertex(width, width / 2);
  vertex(width, width);
  vertex(0, width);

  endShape();
}