JSFiddle - React, Tailwind, and code Playground

by yoowordpress

JavaScript

const input = `121.151,20.761 170.165,55.885 200.872,3.816 231.145,55.884 280.592,20.762 286.854,80.687 346.526,68.666
	327.657,126.005 387.276,139.247 346.502,184 395.796,220.302 340.127,244.647 370.611,297.814 309.636,297.457 316.076,358.381
	260.303,333.3 241.622,391.529 200.655,345.979 160.121,391.53 141.008,333.302 85.666,358.381 91.673,297.456 31.131,297.813
	61.183,244.647 5.947,220.302 54.81,184 14.466,139.248 73.652,126.004 55.216,68.667 114.457,80.688 `

const viewBoxScale = 4

const stringPairs = input.split(/[ \t\n]/)
  .map(s => s.trim())
  .filter(s => s.length > 0)

const res = stringPairs.map(s => {
  const [x, y] = s.split(',').map(n => parseFloat(n, 10) / viewBoxScale).map(n => n.toFixed(2))
  return `${x}% ${y}%`
}).join(', ')

console.log(`clip-path: polygon(${res});`)