On Sun, 24 Mar 2013 16:31:10 +0100
Hans-Peter Diettrich <[email protected]> wrote:

> Mattias Gaertner schrieb:
> > Hi,
> > 
> > I added a new control TLvlGraphControl to package LazControls. It is a
> > LCL control showing a graph as "level graph". Another name is "layered
> > graph".
> > 
> > See the screenshot and see here:
> > http://wiki.lazarus.freepascal.org/Lazarus_1.2.0_release_notes#TLvlGraphControl
> 
> Nice :-)

Thanks.

 
> > Level graphs can visualize hundreds of nodes and thousands of
> > edges on a single screen, reducing the need to scroll.
> > This control has the ability to highlight the edges under
> > the mouse, so that even complex graphs with thousands of edges can be
> > explored.
> > And it highlights back edges so you can quickly find cycles.
> > 
> > The screenshot is from the IDE's Package Graph.
> 
> Did you already consider to analyze the graph using methods known from 
> the theory of graphs, like splitting the graph into "components"?

TLvlGraph has a property Graph: TLvlGraph, that consists of nodes and
edges. The nodes have arrays of InEdges and OutEdges. So implementing
the normal graph algorithms should be pretty straightforward.
 
> Graph components can help to structure the display of the entire graph, 
> so that e.g. a component can be represented as a single node on the 
> screen, which then can be expanded on demand into a more detailed 
> representation.

Yes, that was my first idea too for packages and units. But it seems
it is more helpful to simply use another lvlgraph
for the details.

Mattias

--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to