points = data.map((d) => {
let x, y;
let iterations = 0;
let da, db;
let matchA, matchB;
do {
x = rngs.xy();
y = rngs.xy();
da = Math.hypot(1 / 3 - x, 1 / 2 - y);
db = Math.hypot(2 / 3 - x, 1 / 2 - y);
matchA = d.a ? da < 0.25 - edgePadding : da > 0.25 + edgePadding;
matchB = d.b ? db < 0.25 - edgePadding : db > 0.25 + edgePadding;
iterations++;
} while (!matchA || !matchB);
return {
...d,
x,
y,
iterations,
da,
db
};
})