svg`<svg width="${w}" height="${h}">
<rect width="${w}" height="${h}" fill="none" stroke="blue" />
${array(n).map(i => Polygon.intersection(zone, new Polygon(...polygonPath(PVector.random(PVector(w, h)), randInt(12), randInt(50, (n-i) * 10), random(TAU))))[0])
.filter(d => d)
.map(p => {
const c = palette[randInt(palette.length)]
const hatches = p.getHatches(random(TAU), randInt(3, 8), 3, true)
return `<path
stroke="${c}"
fill="none"
d="${pathFromHatches(hatches)}"
/>
<path
stroke="${c}"
fill="none"
d="${pathFromPolygon(p)}"
/>`
}).join('\n')}
</svg>`