@flatten-js/polygon-offset

    1.1.3 • Public • Published

    npm version Build Status Coverage Status

    Offset polygon

    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.

    Contacts

    Follow me on Twitter @alex_bol_

    Installation

        npm install --save @flatten-js/polygon-offset

    The package @flatten-js/core is peer dependency of this package and have to be installed separately:

        npm install --save @flatten-js/core

    Usage

        import offset from "@flatten-js/polygon-offset"
    
        let offsetPolygon = offset(polygon, offset_value)

    Example:

        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);

    Install

    npm i @flatten-js/polygon-offset

    DownloadsWeekly Downloads

    124

    Version

    1.1.3

    License

    MIT

    Unpacked Size

    1.53 MB

    Total Files

    66

    Last publish

    Collaborators

    • alexbol99