Upward drawings can be used in several applications, for example to draw Petri Nets
or SADT diagrams. BLAG considers a more general model of upward drawing, in which some feedback edges
are allowed when an upward drawing does not exist for the given graph.
We call such a model "quasi-upward" drawing. In a quasi-upward drawing we call "bend" a point
in which a feedback edge is tangent to the horizontal line through this point.
In what follows we show how to use BLAG for constructing quasi-upward drawings.
First, we present a simple strategy,
suitable for beginners (but
still powerful enough to cover several applications).
Second, we describe how to behave if aesthetics are
more important than performance. Finally, we show
how to customize the drawing
according to your special
requirements
A simple strategy
If you want to construct a quasi-upward drawing of a graph with BLAG, simply do the
following:
- Construct the file "filename" containing your graph using the
GDT file format.
- Perform the commandline:
Where "conf" is a configuration file that allows to customize the
behaviour of BLAG. A full description of the cofiguration file syntax
is given
here.
In this case we suggest the following
content for "conf":
<BEGIN_OPTIONS>
<ALGORITHM> 3 </ALGORITHM>
<END_OPTIONS>
Algorithm number 3 corresponds to the default algorithm for
quasi-upward drawings.
- At this point file "filename.exp" stores all the
information that is needed to draw your graph as a
quasi-upward drawing, according to the
simplified export format.
Note that another file is also created, called "filename.gdt".
It contains the same information in a format that is the internal
format of GDT and that is a little more complicated.
An example of quasi-upward drawing constructed with the previous steps
is shown in the following figure. Observe that smoothed edges have been
used to represent connections.
If aesthetics are more important than performance
If you have strict aesthetics requirements, you can replace
the above configuration file with the following
one.
You will obtain drawings that are much
better in terms of number of bends along edges.
On the other hand you will have worse time performance.
A quasi-upward drawing constructed with code 4 of the same graph
of the previous figure is shown below.
Note: the current version of GDT allows to apply code 4
only to graphs that are biconnected.
A graph is biconnected if the removal of one node is not
sufficient to cut it into two (or more) disconnected pieces.
Note: code 2 causes the invocation of a branch and
bound algorithm, that is potentially exponential in time requirement.
This makes it unsuitable for graphs with more that 100 nodes.
Drawing customization
If you need to customize your drawing, then you can exploit the
capability of GDT in handling user-specified constraints.
For example, if you want that all the nodes of a certain set (say 0, 5, and 6)
are drawn in the same face (say with dummy label 1), then you can replace
the above configuration file with the following
one.
As another example, if you want to emphasize an edge (say edge 8) that for some reason
is expecially important, then you might want to preserve it
to have crossings and maybe to have bends.
This is done very easily by replacing
the above configuration file with the following
one.
<BEGIN_OPTIONS>
<ALGORITHM> 3 </ALGORITHM>
<CONSTRAINTS>
<UNCROSSABLE_EDGES>
</UNCROSSABLE_EDGES>
<BENDS>
</BENDS>
</CONSTRAINTS>
<END_OPTIONS>
Last update : July 31, 2002
Website design by INTEGRA Sistemi, www.IntegraSistemi.it