let n = 0,d;
let area_black = 0
let area_white = 0
let cArray = [];
let cnt = 0;
let cBool = true;
function setup() {
createCanvas(windowWidth, windowHeight);
cArray[0] = [];
cArray[1] = [];
cArray[2] = [];
noStroke();
}
function draw() {
background(0);
fill(255)
translate(width / 2, height / 2);
d = min(width, height) - 20;
circle(0, 0, d);
area_white = d*d/4*PI;
for (let i = 0; i < n; i++) {
addCircle(i);
}
noLoop();
}
function addCircle(x,y) {
cBool = true;
fill(0);
noFill();
c=0
a = dist(x, y, 0, 0);
b=1000
if (a <= d / 2) {
b = (d / 2 - a) * 2;
if (cnt === 0) {
cBool=true
} else {
for (let i = 0; i < cnt; i++) {
cR=cArray[2][i] / 2
k = dist(cArray[0][i], cArray[1][i], x, y);
c = 2 * (k - cArray[2][i] / 2);
b = min(b, c);
log("c", c, "b", b);
if (k-cR<0) {
cBool = false;
}
}
}
} else if (a > d / 2) {
cBool = false;
}
if (cBool) {
fill(0);
circle(x, y, b);
area_black=area_black+(b/2)*(b/2)*PI
cArray[0][cnt] = x;
cArray[1][cnt] = y;
cArray[2][cnt] = b;
cnt++;
}
cBool=true;
}
function mousePressed(){
addCircle(mouseX-width/2,mouseY-height/2)
pw = round((area_white-area_black)/area_white*100)
pb = round((area_black)/area_white*100)
push()
console.log("white~" + str(round(area_white-area_black)) + " percent: "+pw)
console.log("black~" + str(round(area_black)) + " percent: "+pb)
pop()
}
function keyPressed(){
translate(-width/2,-height/2)
cArray[0] = [];
cArray[1] = [];
cArray[2] = [];
noStroke();
cnt=0;
draw();
push()
area_white=(d/2)*(d/2)*PI
area_black = 0
console.log("white~" + str(round(area_white-area_black)))
console.log("black~" + str(round(area_black)))
pop()
}