xxxxxxxxxx
43
function createDistribution(bins, samples) {
let distribution = Array(bins).fill(0);
for(let s = 0; s < samples; ++s) {
let x = 1, y = 1;
while(x*x + y*y > 1) {
x = random();
y = random();
}
let i = floor(x*bins);
distribution[i] += 1;
}
return distribution.map(p=>p/samples);
}
function setup() {
createCanvas(400, 400);
background(220);
noLoop();
let bins = 100;
let samples = 1000000;
let dist = createDistribution(bins, samples);
for(let i = 0; i < bins; i++) {
let px = i * width / bins;
let y = dist[i];
let py = height - y * height * bins * PI/4;
point(px, py);
}
/*
for(let i = 0; i < 100; i++) {
let x = i / 100;
let y = sqrt(1-x*x);
let px = i * 4;
let py = height * (1-y);
point(px, py);
}
*/
}