DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/polygon package

    1.0.2 • Public • Published




    npm install polygon


    Create a new polygon:

    var p = new Polygon([
      Vec2(0, 0),
      Vec2(10, 0),
      Vec2(0, 10)

    You can pass an array of Vec2s, arrays [x, y], or objects { x: 10, y: 20 }

    Supported Methods

    • each(function(prev, current, next, idx) {})
    • point(idx) - returns the point at index idx. note: this will wrap in both directions
    • dedupe(returnNew) - ensure all of the points are unique
    • insert(vec2, index) - insert vec2 at the specified index
    • remove(vecOrIndex) - remove the specified vec2 or numeric index from this polygon
    • clean(returnNew) - removes contiguous points that are the same
    • winding() - returns the direction in which a polygon is wound (true === clockwise)
    • rewind(bool) - rewinds the polygon in the specified direction (true === clockwise)
    • area() - computes the area of the polygon
    • closestPointTo(vec2) - finds the closest point in this polygon to vec2
    • center() - returns a Vec2 at the center of the AABB
    • scale(amount, origin, returnNew) - scales this polygon around origin (default is this.center()) and will return a new polygon if requested with returnNew
    • containsPoint(vec2) - returns true if vec2 is inside the polygon
    • containsPolygon(poly) - returns true if poly is completely contained in this polygon
    • aabb() - returns an object {x:_, y:_, w:_, h:_} representing the axis-aligned bounding box of this polygyon
    • offset(amount) - performs an offset/buffering operation on this polygon and returns a new one
    • line(index) - return an array [startpoint, endpoint] representing the line at the specified index
    • lines(function(start, end, index) {}) - iterate over the lines in this polygon
    • selfIntersections - find self-intersections and return them as a new polygon
    • pruneSelfIntersections - remove self intersections from this polygon. returns an array of polygons
    • length - returns the number of points in this polygon
    • clone - return a new instance of this polygon
    • rotate(rads, vec2, returnNew) - rotate by origin vec2 (default this.center()) by radians rads and return a clone if returnNew is specified
    • translate(vec2, returnNew) - translate by vec2 and return a clone if returnNew is specified
    • equal(poly) - return true if this polygon has the same components and the incoming poly
    • contains(thing) - works with an array of vec2's, an object containing a .position and .radius, an object populated with x1,y1,x2,y2, an object populated with x,y,w,h, and an object populated with x,y,width,height. See the tests for more info
    • union(polygon) returns a new polygon representing the boolean union of this and the incoming polygon
    • cut(polygon) returns a new polygon representing the boolean cut of polygon from this
    • toArray() convert this polygon into an array of arrays ([[x, y]])




    npm i polygon

    DownloadsWeekly Downloads






    Last publish


    • avatar