Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | 2x 2x 6x 1x 1x 1x 9x 9x 19x 19x 19x 18x 12x 10x | export const snap = (points: number | number[]) => { if (typeof points === 'number') { return (v: number) => Math.round(v / points) * points; } else { let i = 0; const numPoints = points.length; return (v: number) => { let lastDistance = Math.abs(points[0] - v); for (i = 1; i < numPoints; i++) { const point = points[i]; const distance = Math.abs(point - v); if (distance === 0) return point; if (distance > lastDistance) return points[i - 1]; if (i === numPoints - 1) return point; lastDistance = distance; } }; } }; |