xxxxxxxxxx
52
let t = 10;
let l = 5;
let speeed = 100;
let crossesCount, doesntCrossCount;
let pieP;
function setup() {
createCanvas(400, 400);
background(0);
stroke(255);
for (let x = 0; x <= width; x += t) {
line(x, 0, x, height);
}
crossesCount = 0;
doesntCrossCount = 0;
pieDiv = createDiv("0.0");
}
function draw() {
for (let n = 0; n < speeed; ++n) {
let x0 = random(width);
let x1 = random(width);
let y0 = random(height);
let y1 = random(height);
let xc = (x0 + x1) / 2;
let yc = (y0 + y1) / 2;
let dst = dist(x0, y0, x1, y1);
let scl = l / dst;
let nx0 = xc + (x0 - xc) * scl;
let ny0 = yc + (y0 - yc) * scl;
let nx1 = xc + (x1 - xc) * scl;
let ny1 = yc + (y1 - yc) * scl;
let closest = round(xc / t);
let closestX = closest * t;
if( (nx0 < closestX && nx1 > closestX) ||
(nx1 < closestX && nx0 > closestX) ) {
++crossesCount;
stroke(0,255,0);
} else {
++doesntCrossCount;
stroke(255,0,0);
}
line (nx0, ny0, nx1, ny1);
}
let prob = crossesCount / (crossesCount + doesntCrossCount);
let pie = 2 * l / (prob * t);
// console.log(pie);
pieDiv.html(pie);
}