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.

  • 6
    If a node has multiple parents, it is not a tree. – ftr Mar 16 '12 at 13:38
  • 4
    Have you looked into GraphViz? graphviz.org – FrustratedWithFormsDesigner Mar 16 '12 at 13:39
  • @ftr yes, it's graph. – mariki Mar 16 '12 at 13:47
  • 2
    JUNG is a graph visualization framework for Java, but I don't know how well it fits into your technology stack. jung.sourceforge.net – ftr Mar 16 '12 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 Apr 18 '12 at 2:42

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.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.