StackGenVis: Alignment of Data, Algorithms, and Models for Stacking Ensemble Learning Using Performance Metrics
https://doi.org/10.1109/TVCG.2020.3030352
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.5 KiB
54 lines
1.5 KiB
4 years ago
|
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
|
||
|
|
||
|
```javascript
|
||
|
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
|
||
|
|
||
|
```javascript
|
||
|
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:
|
||
|
|
||
|
```javascript
|
||
|
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
|