Skip to content

luncheon/simplify-svg-path

Repository files navigation

simplify-svg-path

Extracts Path#simplify() from Paper.js.
http://paperjs.org/reference/path/#simplify

Installation & Usage

$ npm i @luncheon/simplify-svg-path
import simplifySvgPath from '@luncheon/simplify-svg-path'

const points = [[10, 10], [10, 20], [20, 20]];
const path = simplifySvgPath(points);
// "M10,10c0,3.33333 -2.35702,7.64298 0,10c2.35702,2.35702 6.66667,0 10,0"

CDN (jsDelivr)

<script src="https://cdn.jsdelivr.net/npm/@luncheon/[email protected]"></script>
<script>
  const path = simplifySvgPath([[10, 10], [10, 20], [20, 20]]);
</script>

API

simplifySvgPath(
  points: [x: number, y: number][], // `{ x: number, y: number }[]` is also acceptable
  {
    closed: boolean = false,
    tolerance: number = 2.5,
    precision: number = 5,
  } = {}
): string

// SVG path command string such as
// "M10,10c0,3.33333 -2.35702,7.64298 0,10c2.35702,2.35702 6.66667,0 10,0"

Note

The logic is a copy of Paper.js v0.12.11.
If you like this, please send your thanks and the star to Paper.js.