Re: drawing graphs with dia



Grégoire Dooms sagde:
Hi,
I often need to draw graphs and the best tool I have come around up to
now is dia.
With the aspect ratio and central connection point of ellipses dia is a
great tool to draw undirected graphs.

But when it comes to directed graphs, things get a little more difficult.

There have been some discussions on this list about features that could
improve dia for drawing directed graphs:
- The line gap code from David Hoover :
 http://mail.gnome.org/archives/dia-list/2002-November/msg00097.html
- The curve/line intersection:
http://mail.gnome.org/archives/dia-list/2004-August/msg00086.html
- The "virtual" and "edge"  in the chickenpox  discussion:
 http://mail.gnome.org/archives/dia-list/2004-March/msg00098.html

I cannot find the line gap UI in dia v0.94 and cannot compile from CVS
(see below).

So here is my question:
I would like to implement some kind of support for radial arcs in a
graph (the end of the arrow touches the  edge of the ellipse while the
arrow points to and is connected to the central CP).

How should I do this ?
- An auto-gap option on lines (only working when connected with central
CP of circles at first)
- A programmed object for graph_node/arc (with lots of code copy-pasted
from ellipse.c and line.c)
- any other way ?

First option is exactly what I had in mind for after 0.95.  We have code
that does line-gap well for almost all objects, but only with lines.  The
various straight lines would work well with it, but getting arcs and
beziers to do the right thing would be tricky.

The main thing that's been holding me off is that I wanted to let all
objects have the virtual central CP.  Some objects have a dynamic number
of CPs, which makes it trickier.  We have some notes on this problem on
the TWiki.

I would love it if you started looking at this.  I'd want to keep it
entirely #ifdef'ed until 0.95 is out (unless you code well and fast), but
I'm very interested in seeing some action on that front.  I do feel,
though, that it would be unfair not to mention the Graphviz package, which
is made for making graphs.  Doesn't have the editing abilities of Dia, but
is really good at autolayout.

PS: I tried to compile CVS HEAD on 2005-03-11 and got this error:
widgets.c:30:27: dia-lib-icons.h: No such file or directory
(I did cvs up -d to update my cvs tree) should I check-out from scratch ?

Is that from today?  There's something about how automake doesn't quite
force the creation of it, but if you 'make dia-list-icons.h' in lib it's
created.

-Lars



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]