data = {
const points = 20000,
r = 1;
const data = [],
rndX = d3.randomUniform(boundingBox.xRange[0], boundingBox.xRange[1]),
rndY = d3.randomUniform(boundingBox.yRange[0], boundingBox.yRange[1]),
rndPnt = () => {
return { x: rndX(), y: rndY() };
};
var pnt = rndPnt(),
newPnt,
pntCount = 1;
while (!d3.polygonContains(boundingBox.polygon, [pnt.x, pnt.y])) {
pnt = rndPnt();
}
data.push(Object.assign({ r, i: 0 }, pnt));
for (let i = 0; i < points; ++i) {
pnt = rndPnt();
newPnt = addNewPnt(pnt, data);
if (!newPnt) continue;
++pntCount;
data.push(Object.assign({ r, i: pntCount }, newPnt.newPnt));
}
Object.assign(data, { boundingBox, rndPnt, pntCount });
return data;
}