seats = {
const sieges = (l) => Math.round(l / x);
const seats = d3.sort(
d3
.range(travees)
.flatMap((travee) => {
const n = sieges(longueur(travee));
return d3.range(n).map((i) => ({ i, n, travee }));
})
.map(({ i, n, travee }) => {
const [x, y] = d3.pointRadial(
-Math.PI / 2 + Math.PI * (i / (n - 1)),
longueur(travee)
);
return { x, y, travee };
}),
({ x, y }) => Math.atan2(y, x)
);
let t = 0;
for (const { groupe, nombre } of groupes) {
seats.slice(t, t + nombre).forEach((d) => (d.groupe = groupe));
t += nombre;
}
return seats;
}