xxxxxxxxxx
100
let cells = [];
const cellSize = 4;
let currentRow = 0;
let x;
let coswave = [];
function setup() {
createCanvas(500, 500);
// background('black');
for (let i = 0; i < width; i++) {
let amount = map(i, 0, width, 0, PI);
coswave[i] = abs(cos(amount));
}
const numCells = width / cellSize;
for (let i = 0; i < numCells; i++) {
cells[i] = 0;
}
cells[round(numCells / 2)] = 0;
// translate(width/2,height/2);
}
function draw() {
fill("white");
noStroke();
// translate(0, cellSize*500);
translate(0, cellSize * currentRow);
// translate(0, cellSize*currentRow );
currentRow++;
for (let i = 0; i < cells.length; i++) {
// fill(255*coswave[i]);
if (cells[i] == 1) {
noFill();
// noStroke();
// fill('black');
ellipse(i * cellSize, 0, cellSize, cellSize);
// rotate(2);
} else if (cells[i] == 2) {
// fill('black');
//noFill();
// stroke(distances[x][y]);
// stroke('white');
// push();
// translate(width/2,height/2);
// stroke('white');
strokeWeight(0.4);
// rotate(2);
ellipseMode(RADIUS);
fill(0, 25);
ellipse(i * cellSize, 0, cellSize, cellSize);
ellipseMode(CENTER);
fill("black");
noStroke();
ellipse(i * cellSize, 0, cellSize / 2, cellSize / 2);
// pop();
} else {
// noFill();
stroke("white");
noFill();
noStroke();
// fill('white');
rect(i * cellSize, 0, cellSize, cellSize);
}
// rotate(2);
// translate(-300, -300);
// rect(i * cellSize, 0, cellSize, cellSize);
}
let newCells = [];
for (let i = 0; i < cells.length; i++) {
// const leftleft = cells[i - 2] ?? 0;
// const left = cells[i - 1] ?? 0;
// const middle = cells[i];
// const right = cells[i + 1] ?? 0;
// const rightright = cells[i + 2] ?? 0;
// const sum = left + middle + right + leftleft + rightright;
let sum = 6;
let nSize = 10;
for (let n = -nSize; n <= nSize; n++) {
sum = sum + (cells[i + n] ?? 0);
}
if (sum % 2 || sum % 4) {
newCells[i] = 2;
} else if (sum < 3) {
newCells[i] = 1;
} else {
newCells[i] = 0;
}
}
cells = newCells;
// translate(10,3);
// rotate(cells);
}