Polygon equidistant offset
npm install @flatten-js/polygon-offset


This package implements algorithm of equidistant offset of polygon. It relies on the flatten-js
library and its polygon model.
Algorithm based on the idea of morphological offset, when each edge of the polygon is mapped to its offset,
and then boolean operation performed between original contour and offset edges.
When offset value is positive, offset edges are unified with original contour, when negative - they are
subtracted from original contour.
Follow me on Twitter @alex_bol_
bash
npm install --save @flatten-js/polygon-offset
`
The package @flatten-js/core is peer dependency of this package
and have to be installed separately:`bash
npm install --save @flatten-js/core
`Usage
`javascript
import offset from "@flatten-js/polygon-offset" let offsetPolygon = offset(polygon, offset_value)
`Example:
`javascript
import {segment, point, Polygon} from "@flatten-js/core"
import offset from "@flatten-js/polygon-offset" // Create polygon
let shapes = [
segment(point(200,100), point(200,300)),
segment(point(200,300), point(440,300)),
segment(point(440,300), point(300,200)),
segment(point(300,200), point(440,150)),
segment(point(440,150), point(500,150)),
segment(point(500,150), point(640,200)),
segment(point(640,200), point(500,300)),
segment(point(500,300), point(740,300)),
segment(point(740,300), point(740,100)),
segment(point(740,100), point(200,100))
];
let polygon = new Polygon();
polygon.addFace(shapes);
// Apply polygon offset
let offsetPolygon = offset(polygon, 20);
``