// rasgado: gera o contorno irregular de um papel rasgado (polygon em px) de forma determinística. Usado por todos os recortes do kit. import {ruido} from '../base'; export const rasgado = (w: number, h: number, seed = 1, amp = 9, passo = 26): string => { const pts: string[] = []; const lado = (x0: number, y0: number, x1: number, y1: number, n: number) => { const len = Math.hypot(x1 - x0, y1 - y0), k = Math.max(2, Math.round(len / passo)); for (let i = 0; i < k; i++) { const t = i / k, nx = -(y1 - y0) / len, ny = (x1 - x0) / len; const o = (ruido(seed * 17 + n * 31 + i) - 0.5) * 2 * amp; pts.push(`${(x0 + (x1 - x0) * t + nx * o).toFixed(1)}px ${(y0 + (y1 - y0) * t + ny * o).toFixed(1)}px`); } }; lado(amp, amp, w - amp, amp, 1); lado(w - amp, amp, w - amp, h - amp, 2); lado(w - amp, h - amp, amp, h - amp, 3); lado(amp, h - amp, amp, amp, 4); return `polygon(${pts.join(',')})`; };