polygon.clip

clip a polygon with another

npm install polygon.clip
1 downloads in the last day
9 downloads in the last week
11 downloads in the last month

polygon.clip

Implementation of the Greiner-Kai "efficient clipping of arbitrary polygons" paper

install

npm install poygon.clip

use

signature

Polygon#clip(clippingPolygon, mode)

Where mode is 'difference' or 'union'

example

Lets clip two squares


var Polygon = require('polygon.clip'),
    Vec2 = require('vec2');

var subject = Polygon([
  Vec2(0, 0),
  Vec2(100, 0),
  Vec2(100, 100),
  Vec2(0, 100),
  Vec2(0, 0)
]);

var clip = Polygon([
  Vec2(90, 90),
  Vec2(110, 90),
  Vec2(110, 110),
  Vec2(90, 110),
  Vec2(90, 90)
]);


// union is an array of Polygons
var union = subject.clip(clip, 'union');

console.log(JSON.stringify(union[0].points, null, '  '));

In this case, there will only be one polygon in the union array, and it will define the upper corner of the subject polygon

[[100, 90], [100,100], [90, 100], [90,90]]

license

MIT

npm loves you