[Layout] Node Placement with Flexible Node Size and Port Position
The classic Sugiyama graph drawing algorithm consists of 5 phases: cycle breaking, layer assignment, crossing minimization, node placement and edge routing. Node placement sets the x-coordinates of nodes (in a downward layout) and creates alignment between nodes, improves edge straightness, or balances nodes based on their incoming edges. Node sizes can also be used to eliminate edge bends by increasing the size of nodes, as seen below, which makes the drawing easier to read, edges easier to follow and therefore easier to understand.
Figure showing the current layout without flexible node size and the existing ONO (obviously not optimal) parts of a layout with flexible node size
Goals
- Improve the existing Network Simplex node placement strategy with flexible node size by:
- centering edges on their nodes if it does not compromise the quality of the layout, if necessary by increasing node sizes even more
- minimize the size of the drawing if possible
- (optional) Explore options that need configuration depending on the context.
- alignment of edges, ...
Scope
Master's (Bachelor's) Thesis
Related Work/Literature
Emden R. Gansner, Eleftherios Koutsofios, Stephen C. North, Kiem-Phong Vo, A technique for drawing directed graphs. Software Engineering 19(3), pp. 214-230, 1993.
Ulf Rüegg, Sugiyama Layouts for Prescribed Drawing Areas (KCSS 2018/1), Chapter 4.1: Network Simplex Approach
Involved Languages/Technologies
- Java
- ELK
- https://github.com/eclipse/elk/issues/853 (corresponding ticket in ELK)
Supervised By
Sören Domrös
sdo@ifi