Fine-Tuning of a Layout
An automatically generated graph is never perfect.
To overcome this deficit, uDraw(Graph) offers interactive fine-tuning
Fine-tuning is available at any time, before or after improving
edge crossings with menu
Fine-tuning is even useful to remove obvious edge crossings which
cannot be removed by the layout algorithm.
Then after fine-tuning, the layout algorithm can be started again to
eliminate more edge crossings.
The following description is written for fine-tuning in a top-down
layout, for other orientations the terms "horizontal" and "vertical"
have to be exchanged.
Fine-tuning works by selecting a node with the left mouse button.
The button needs to be pressed while the mouse is moved to a new
Regular nodes can be moved both in horizontal and vertical direction,
but dummy nodes can only be moved horizontally.
Fine-tuning in uDraw(Graph) is more than moving a node to another position,
because moving a node automatically corrects the position of neighbour
nodes in order to preserve a correct hierarchical layout.
For example, if a node is moved horizontally and has reached its
neighbour node then either both nodes have to exchange their position
(mode "Modify Node Order") or the neighbour node has to be moved as well
(mode "Preserve Node Order"), depending on the current setting for
Furthermore, if a node is moved to the next or previous level, then
the child or parent subgraphs may have to be moved as well to keep
a hierarchical layout where all edges point downwards.
For horizontal fine-tuning (i.e. moving a node on a level to the
left or to the right), there are three modes that can be set with
or by using the last three icons
of the icon bar at the left side of the base window.
The fine-tuning mode defines the behavior when a moved node has
touched its left or right neighbour node at the same level.
A neighbour node is touched when the minimal node distance is reached.
Vertical fine-tuning is used to move a node to a different level.
This is only possible with regular nodes.
Dummy nodes which are used to fill long span edges cannot be moved
A node that is dragged is moved to the next or previous level as
soon as the level coordinate (i.e. the center of all nodes at this
level) is reached by the mouse pointer.
At this time, dynamic layout may automatically start to rearrange
This is needed to keep a hierarchical layout.
In default mode "Preserve Node Order", the touched node is moved
as well to keep the order of nodes on a level.
In mode "Modify Node Order", the moved node and the touched node
will exchange their position as soon as there is enough space to
do so. This mode is useful to rearrange the order of nodes on a
level, e.g. to remove edge crossings by hand.
In the third mode "Fixed Neighbour Nodes", fine-tuning will stop as
soon as a neighbour node is touched. This is useful to
protect the position of all neighbour nodes.
Important notes about fine-tuning
After starting the layout algorithm, the x-coordinates and order
of all nodes are recalculated, but their current level
will be kept. This preserves previous vertical fine-tuning, but
eliminates horizontal adjustments.
If you want to place the nodes back to their default level, you
have to deselect checkbox "Keep Nodes at Levels" in the
Modifying the layout dimensions with the
dialog eliminates previous horizontal fine-tuning steps.
So the final dimensions should be set before starting with
Unnecessary space to the left and the right of the visualization
is removed immediately after you have released the mouse button.