export type Coor = [number, number]; export type BoxCoor = [Coor, Coor, Coor, Coor]; export const sortBoxCoor = (boxCoor: BoxCoor): Coor[] => { boxCoor.sort((a, b) => (a[0] === b[0] ? a[1] - b[1] : a[0] - b[0])); return [boxCoor[0], boxCoor[1], boxCoor[3], boxCoor[2], boxCoor[0]]; }; export const makeCoors = ( width: number, height: number, boxCoors: Coor[][], ): Coor[] => { boxCoors.sort((a, b) => a[0][0] - b[0][0]); const res: Coor[] = [[0, 0]]; for (const boxCoor of boxCoors) { const entry: Coor = [boxCoor[0][0], 0]; res.push(entry, ...boxCoor, entry); } res.push([width, 0], [width, height], [0, height], [0, 0]); return res; }; export const outputCss = (coors: Coor[]): string => { const polygon = coors .map((coor) => coor.map((n) => `${n}px`).join(' ')) .join(', '); const css = `polygon(${polygon})`; return css; };