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
