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– ftr2012年03月16日 13:38:57 +00:00Commented Mar 16, 2012 at 13:38
-
4Have you looked into GraphViz? graphviz.orgFrustratedWithFormsDesigner– FrustratedWithFormsDesigner2012年03月16日 13:39:04 +00:00Commented Mar 16, 2012 at 13:39
-
@ftr yes, it's graph.mariki– mariki2012年03月16日 13:47:56 +00:00Commented 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– ftr2012年03月16日 13:52:03 +00:00Commented 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– AlexMA2012年04月18日 02:42:17 +00:00Commented 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.