Socket
Socket
Sign inDemoInstall

split-polygon

Package Overview
Dependencies
3
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    split-polygon

Splits a convex polygon by a plane


Version published
Weekly downloads
79K
decreased by-5.16%
Maintainers
1
Install size
24.0 kB
Created
Weekly downloads
 

Readme

Source

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

Keywords

FAQs

Last updated on 19 Jun 2014

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc