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.
75 lines
2.1 KiB
75 lines
2.1 KiB
4 years ago
|
simplify-planar-graph
|
||
|
=====================
|
||
|
Simplifies a planar graph by removing small or nearly flat corners.
|
||
|
|
||
|
# Example
|
||
|
|
||
|
```javascript
|
||
|
var simplify = require("simplify-planar-graph")
|
||
|
|
||
|
//Create a circle
|
||
|
var positions = []
|
||
|
var edges = []
|
||
|
for(var i=0; i<100; ++i) {
|
||
|
var theta = i / 100 * Math.PI * 2.0
|
||
|
positions.push([Math.cos(theta), Math.sin(theta)])
|
||
|
edges.push([i, (i+1)%100])
|
||
|
}
|
||
|
|
||
|
//Simplify it
|
||
|
console.log(simplify(edges, positions, 0.1))
|
||
|
```
|
||
|
|
||
|
Output:
|
||
|
|
||
|
```javascript
|
||
|
{ positions:
|
||
|
[ [ 0.9921147013144779, 0.12533323356430426 ],
|
||
|
[ 0.8090169943749475, 0.5877852522924731 ],
|
||
|
[ 0.48175367410171516, 0.8763066800438637 ],
|
||
|
[ -0.30901699437494734, 0.9510565162951536 ],
|
||
|
[ -0.7705132427757891, 0.6374239897486899 ],
|
||
|
[ -0.9980267284282716, 0.06279051952931358 ],
|
||
|
[ -0.9510565162951535, -0.30901699437494773 ],
|
||
|
[ -0.5877852522924732, -0.8090169943749473 ],
|
||
|
[ -0.18738131458572463, -0.9822872507286887 ],
|
||
|
[ 0.535826794978996, -0.8443279255020155 ],
|
||
|
[ 0.7705132427757894, -0.6374239897486896 ] ],
|
||
|
edges:
|
||
|
[ [ 0, 1 ],
|
||
|
[ 1, 2 ],
|
||
|
[ 2, 3 ],
|
||
|
[ 3, 4 ],
|
||
|
[ 4, 5 ],
|
||
|
[ 10, 0 ],
|
||
|
[ 5, 6 ],
|
||
|
[ 6, 7 ],
|
||
|
[ 7, 8 ],
|
||
|
[ 8, 9 ],
|
||
|
[ 9, 10 ] ] }
|
||
|
```
|
||
|
|
||
|
# Install
|
||
|
|
||
|
```
|
||
|
npm install simplify-planar-graph
|
||
|
```
|
||
|
|
||
|
# API
|
||
|
|
||
|
#### `require("simplify-planar-graph")(edges, positions, tolerance)`
|
||
|
Simplies a planar graph to a given tolerance
|
||
|
|
||
|
* `edges` are the edges of the graph represented by pairs of vertex indices
|
||
|
* `positions` is a list of vertex coordinates encoded as an array of 2D arrays
|
||
|
* `tolerance` controls the target aspect ratio of the corners of the mesh
|
||
|
|
||
|
**Returns** A new planar graph encoded as a JSON object with two properties:
|
||
|
|
||
|
* `edges` is an array of edges encoded as pairs of indices
|
||
|
* `positions` is an array of positions for the simplicial complex
|
||
|
|
||
|
**Note** The current implementation does not detect the removal of features which cross existing line segments. Picking a high tolerance value may result in destroying the planarity of the resulting graph. Eventually if it becomes a priority I may go back and implement code to detect and handle these cases.
|
||
|
|
||
|
# Credits
|
||
|
(c) 2014 Mikola Lysenko. MIT License
|