packings = {
const regularTransform = n => (outerRadius, radius, i) =>
`rotate(${(360 / n) * i}) translate(0, ${radius - outerRadius})`;
const transform7 = (outerRadius, radius, i) =>
i < 6 ? regularTransform(6)(outerRadius, radius, i) : `translate(0, 0)`;
const transform11 = (outerRadius, radius, i) =>
i < 8
? `rotate(${(360 / 9) * i - (360 / 9) * 3.5}) translate(0, ${radius -
outerRadius})`
: `translate(0, ${radius * 0.4}) rotate(${(360 / 3) * i -
180}) translate(0, ${0 - radius * 1.155})`;
return [
{ count: 1, r: 1, transforms: regularTransform(1) },
{ count: 2, r: 2, transforms: regularTransform(2) },
{ count: 3, r: 2.154, transforms: regularTransform(3) },
{ count: 4, primes: [2, 2] },
{ count: 5, r: 2.701, transforms: regularTransform(5) },
{ count: 6, primes: [3, 2] },
{ count: 7, r: 3, transforms: transform7 },
{ count: 8, primes: [2, 2, 2] },
{ count: 9, primes: [3, 3] },
{ count: 10, primes: [5, 2] },
{ count: 11, r: 3.923, transforms: transform11 },
{ count: 12, primes: [3, 2, 2] }
];
}