polygons = {
const polygons = [];
while (polygons.length < settings.count) {
const n = nPoints(),
poly = [];
while (poly.length < n) {
poly.push([x(), y()]);
}
const triangles = [
...d3.Delaunay.from([
...[[0, 0], [0, settings.size]],
...poly
]).trianglePolygons()
].map(d => {
const points = d.slice(0, -1),
[cx, cy] = d3.polygonCentroid(points);
return {
points,
center: [cx, cy],
opacity: opacity(cx)
};
});
polygons.push(triangles);
}
return polygons;
}