# [Layout] Node Placement with Flexible Node Size and Port Position

Last modified by Jette Petzold on 2024/02/13 07:59
Export
Office Formats
Export as PDF Export as ODT Export as RTF
Other Formats

Select the pages to export:

select all/ none

Legend:
  Created Page
  Modified Extension Page
  Clean Extension Page

Export as HTML

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

Tags:
Created by Soeren Domroes on 2022/09/26 06:23

- Comments (0)
- Attachments (3)
- History
- Information

# Quick Links

KIELER on GitHub
RTSYS Homepage

XWiki 14.4.7