balloon = radius => {
const points = 64,
startCutoff = 4,
endCutoff = points + 1 - startCutoff,
bezierOffset = -.3,
circle = geometric.polygonRegular(
points,
pi * radius ** 2
),
startCutoffPoint = circle[startCutoff],
endCutoffPoint = circle[endCutoff],
taperTo = [
(startCutoffPoint[0] + endCutoffPoint[0]) / 2,
circle[0][1] + radius / pi
];
return [
...swoopy.quad(taperTo, startCutoffPoint, bezierOffset),
...circle.filter((d, i) => i >= startCutoff && i <= endCutoff),
...swoopy.quad(endCutoffPoint, taperTo, bezierOffset)
]
}