split-polygon

WebJar for split-polygon

License

License

MIT
GroupId

GroupId

org.webjars.npm
ArtifactId

ArtifactId

split-polygon
Last Version

Last Version

1.0.0
Release Date

Release Date

Type

Type

jar
Description

Description

split-polygon
WebJar for split-polygon
Project URL

Project URL

http://webjars.org
Source Code Management

Source Code Management

https://github.com/mikolalysenko/split-polygon

Download split-polygon

How to add to project

<!-- https://jarcasting.com/artifacts/org.webjars.npm/split-polygon/ -->
<dependency>
    <groupId>org.webjars.npm</groupId>
    <artifactId>split-polygon</artifactId>
    <version>1.0.0</version>
</dependency>
// https://jarcasting.com/artifacts/org.webjars.npm/split-polygon/
implementation 'org.webjars.npm:split-polygon:1.0.0'
// https://jarcasting.com/artifacts/org.webjars.npm/split-polygon/
implementation ("org.webjars.npm:split-polygon:1.0.0")
'org.webjars.npm:split-polygon:jar:1.0.0'
<dependency org="org.webjars.npm" name="split-polygon" rev="1.0.0">
  <artifact name="split-polygon" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.webjars.npm', module='split-polygon', version='1.0.0')
)
libraryDependencies += "org.webjars.npm" % "split-polygon" % "1.0.0"
[org.webjars.npm/split-polygon "1.0.0"]

Dependencies

compile (2)

Group / Artifact Type Version
org.webjars.npm : robust-dot-product jar [1.0.0,2)
org.webjars.npm : robust-sum jar [1.0.0,2)

Project Modules

There are no modules declared in this project.

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

Versions

Version
1.0.0