I have a complex non-binary graph model.
Each tree node can have multiple children&parents (a node can also have a connection to it's "brother").
A node is represented as square on screen with lines to the connected nodes.
For that I want to use Draw2D and GEF libraries.
The problem I am facing is the graph layout.
I need a nice algorithm that can reposition the square nodes and the connections with minimum intersections and also make it symmetric as possible.
-
6If a node has multiple parents, it is not a tree.ftr– ftr03/16/2012 13:38:57Commented Mar 16, 2012 at 13:38
-
4Have you looked into GraphViz? graphviz.orgFrustratedWithFormsDesigner– FrustratedWithFormsDesigner03/16/2012 13:39:04Commented Mar 16, 2012 at 13:39
-
@ftr yes, it's graph.mariki– mariki03/16/2012 13:47:56Commented Mar 16, 2012 at 13:47
-
2JUNG is a graph visualization framework for Java, but I don't know how well it fits into your technology stack. jung.sourceforge.netftr– ftr03/16/2012 13:52:03Commented Mar 16, 2012 at 13:52
-
If there are parents, children and siblings, must the siblings be aligned along an axis? Are there any restrictions at all visually? Aside from minimum intersections? Is distance between connections a factor?AlexMA– AlexMA04/18/2012 02:42:17Commented Apr 18, 2012 at 2:42
1 Answer 1
Your parent-child relation probably creates a partial order. Google "partial order graph layout" and top hits mention things like "Coffman–Graham algorithm" and "Hasse diagrams." Maybe some research in those directions would be productive.