polygon.clip

0.0.3 • Public • Published

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

Readme

Keywords

none

Package Sidebar

Install

npm i polygon.clip

Weekly Downloads

523

Version

0.0.3

License

MIT

Last publish

Collaborators

  • tmpvar