Skip to content

standardgalactic/ngraph.forcelayout.nd

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ngraph.forcelayoutNd

Note: Please use 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.

usage

// 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 do:

npm install ngraph.forcelayout.nd

license

MIT

About

Experimental N-dimensional force based graph layout

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%