split-polygon

1.0.0 • Public • Published

split-polygon

Splits a convex polygon by a plane into two parts (or optionally clips the polygon against a single plane) using the Sutherland-Hodgman algorithm. Works in arbitrary dimensions, both in the server and the browser

Install

npm install split-polygon

Example

var splitPolygon = require("split-polygon")
 
var poly = [[1,2], [3,4], [0,0]]
 
var parts = splitPolygon(poly, [0, 1, 3])
 
console.log(parts.positive)
console.log(parts.negative)

API

var splitPolygon = require("split-polygon")

splitPolygon(poly, plane)

Splits the convex polygon poly against plane into two parts, one above the plane and the other below it. The equation for the plane is determined by:

function planeDistance(x) {
  return plane[0] * x[0] + plane[1] * x[1] + ... + plane[n-1] * x[n-1] + plane[n]
}

Points above the plane are those where planeDistance(x) >= 0 and below are those with planeDistance(x) <= 0

  • poly is a convex polygon
  • plane is the plane

Returns An object with two properties:

  • positive is the portion of the polygon above the plane
  • negative is the portion of the polygon below the plane

splitPolygon.positive(poly, plane)

Same result as splitPolygon, except only returns the positive part. This saves a bit of memory if you only need one side.

splitPolygon.negative(poly, plane)

Ditto, except returns only the negative part.

Credits

(c) 2013 Mikola Lysenko. MIT License

Dependencies (2)

Dev Dependencies (2)

Package Sidebar

Install

npm i split-polygon

Weekly Downloads

81,770

Version

1.0.0

License

MIT

Last publish

Collaborators

  • mikolalysenko