Traditionally, drawing of edges is performed together with drawing of nodes. However, there are situations where positions of the nodes are fixed, e.g., when the positions are defined by the user or a separate algorithm.
An example of this situation is a database schema editor, where user positions the nodes (i.e., visual representations of definitions of individual database tables) according to their meaning, for example grouping them according to subdomains of the problem. In this case, we only need to draw the edges but we must do that in such a way that the lines that represent these edges do not cross the rectangles that represent the nodes – we need to perform some kind of edge routing.
This paper describes an algorithm that performs edge routing in such a way that the lengths of the polylines it produces are minimal. We also describe several ways of improving the performance of the basic algorithm so that it can be used even for interactive graph visualization and manipulation, which is necessary in our scenario.
Then, we show several post-processing steps that are used to turn the results of the algorithm into a usable visualization.