polygon
utility for working with polygons (arrays of vec2s)
npm install polygon
Want to see pretty graphs? Log in now!
2 | downloads in the last day |
28 | downloads in the last week |
35 | downloads in the last month |
Last Published By | |
---|---|
Version | 0.1.0 last updated 2 months ago |
License | MIT |
Keywords | polygon, vec2, geometry, 2d |
Repository | git://github.com/tmpvar/polygon.js.git (git) |
Homepage | https://github.com/tmpvar/polygon.js |
Bugs | https://github.com/tmpvar/polygon.js/issues |
Dependencies | vec2, segseg |
Dependents | draw, polygon.clip |
polygon.js
Install
nodejs
npm install polygon
Usage
Create a new polygon:
var p = new Polygon([
Vec2(0, 0),
Vec2(10, 0),
Vec2(0, 10)
]);
You can pass an array of Vec2
s, arrays [x, y]
, or objects { x: 10, y: 20 }
Supported Methods
each(function(prev, current, next, idx) {})
point(idx)
- returns the point at indexidx
. note: this will wrap in both directionsdedupe(returnNew)
- ensure all of the points are uniqueremove(vec2)
- remove the specifiedvec2
from this polygonclean(returnNew)
- removes contiguous points that are the samewinding()
- 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 polygonclosestPointTo(vec2)
- finds the closest point in this polygon tovec2
center()
- returns aVec2
at the center of the AABBscale(amount, origin, returnNew)
- scales this polygon aroundorigin
(default isthis.center()
) and will return a new polygon if requested withreturnNew
containsPoint(vec2)
- returns true ifvec2
is inside the polygoncontainsPolygon(poly)
- returns true ifpoly
is completely contained in this polygonaabb()
- returns an object{x:_, y:_, w:_, h:_}
representing the axis-aligned bounding box of this polygyonoffset(amount)
- performs an offset/buffering operation on this polygon and returns a new oneline(index)
- return an array[startpoint, endpoint]
representing the line at the specifiedindex
lines(function(start, end, index) {})
- iterate over the lines in this polygonselfIntersections
- find self-intersections and return them as a new polygonpruneSelfIntersections
- remove self intersections from this polygon. returns an array of polygonslength
- returns the number of points in this polygonclone
- return a new instance of this polygonrotate(rads, vec2, returnNew)
- rotate by originvec2
(defaultthis.center()
) by radiansrads
and return a clone ifreturnNew
is specifiedrotate(vec2, returnNew)
- translate byvec2
and return a clone ifreturnNew
is specifiedequal(poly)
- return true if this polygon has the same components and the incomingpoly
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
license
MIT