Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/anvaka/ngraph.forcelayout.nd
Experimental N-dimensional force based graph layout
https://github.com/anvaka/ngraph.forcelayout.nd
Last synced: 5 days ago
JSON representation
Experimental N-dimensional force based graph layout
- Host: GitHub
- URL: https://github.com/anvaka/ngraph.forcelayout.nd
- Owner: anvaka
- License: mit
- Created: 2015-04-29T05:35:41.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2022-12-11T09:57:04.000Z (almost 2 years ago)
- Last Synced: 2024-09-30T06:42:28.726Z (about 1 month ago)
- Language: JavaScript
- Homepage:
- Size: 338 KB
- Stars: 4
- Watchers: 4
- Forks: 2
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-starred - anvaka/ngraph.forcelayout.nd - Experimental N-dimensional force based graph layout (others)
README
# ngraph.forcelayoutNd
Note: Please use [ngraph.forcelayout](https://github.com/anvaka/ngraph.forcelayout) instead of this
package. This package is kept here for historical reasons, and `ngraph.forcelayout` is now capable
of performing layouts in any N-dimensional space, with better performance.## Previous readme
Experimental N-dimensional force based graph layout. It supports graph layout
in multidimensional spaces (2+), using higher dimensional orthant trees (similar
to quadtrees, but generalized to multidimensional spaces). While this layout is
very generic and supports higher dimensions, it is still much slower than
specialized [ngraph.forcelayout](https://github.com/anvaka/ngraph.forcelayout).# usage
``` js
// let's say you have a graph instance:
var graph = require('ngraph.graph')();
graph.addLink(1, 2);var createLayout = require('ngraph.forcelayout.nd');
// to create 2d layout:
var layout2d = createLayout(graph, {
dimension: 2
});// to create 4d layout:
var layout4d = createLayout(graph, {
dimension: 4
});// Once you have layout, call it iteratively:
layout2d.step();// You can then get positions of each node:
graph.forEachNode(printPosition);function printPosition(node) {
var pos = layout2d.getNodePosition(node.id);
// pos[0], pos[1] - will represent x, y coordinates of a node.
}```
# install
With [npm](https://npmjs.org) do:
```
npm install ngraph.forcelayout.nd
```# license
MIT