[Zest] Layout implementations and node overlapping [message #1714742] |
Mon, 16 November 2015 10:50 |
Christoph Broeter Messages: 30 Registered: July 2015 |
Member |
|
|
Hey Folks.
My aim is to use several different graph layouts on a planar graph. And maybe you can help me to find a good layout or two. The layouts should satisfy following criteria:
• No node overlapping
• No edge crossing
• Optimal use of the canvas space.
• Minimal space between nodes.
Currently I've investigated these layouts: BoxLayout, GridLayout, TreeLayout, SpringLayout, SugiyamaLayout (Not working at all), RadialLayout, SpaceTreeLayout(also not working)
With following results:
BoxLayout
• Node overlapping
• Edge crossing
• Nodes are drawn over each other in a vertical orientation
GridLayout:
• Node overlapping
• Edge crossing
• Nodes are randomly drawn in a grid based style.
TreeLayout:
• No Node overlapping
• Kind of less Edge crossing
• The nodes are separated into Subtrees which will be orientated vertically on the canvas. Node space is kind of minimal, but since the tree is oriented only vertical the complete space of the canvas is not used properly.
SpringLayout
• Node overlapping
• Edge crossing
• Nodes are randomly drawn on the canvas. And tied together by using a force related layout. The canvas space is used properly but several node overlappings and crossings.
SugiyamaLayout
(Not working at all)
RadialLayout
• Node overlapping
• less Edge crossing
• Canvas space is used properly
SpaceTreeLayout
(Not working at all)
I've also tryed Graphvis to layout the graph.
It is doing a nice job, but I don't like the static implementation.
Layout wise I really like the implementation of yWork's yED. But I can not afford a license. If some of you know which implementations they are using, I would appreciate it. They seem well rounded and well organized.
Maybe there is an other layout library out there which you can recommend and which could be used while using zest for representation.
-
Attachment: box.PNG
(Size: 10.67KB, Downloaded 2040 times) -
Attachment: Grid.PNG
(Size: 127.85KB, Downloaded 2241 times) -
Attachment: radial.PNG
(Size: 99.94KB, Downloaded 2466 times) -
Attachment: spring.PNG
(Size: 104.84KB, Downloaded 2196 times) -
Attachment: tree.PNG
(Size: 18.86KB, Downloaded 1961 times)
[Updated on: Mon, 16 November 2015 12:10] Report message to a moderator
|
|
|
|
|
|
Re: [Zest] Layout implementations and node overlapping [message #1714871 is a reply to message #1714849] |
Tue, 17 November 2015 11:58 |
|
We are in communication with the ELK-committers to make an integration with GEF4 Layout feasible (see bug #440098). We have decided to postpone this until the ELK project is properly created at eclipse.
Can you provide details on why the Sugiyama algorithm does not work at all (or rather create respective bugs to let us now)?
|
|
|
|
Re: [Zest] Layout implementations and node overlapping [message #1715152 is a reply to message #1714898] |
Thu, 19 November 2015 16:10 |
|
Hi Christoph,
actually, you can pass a LayerProvider into the constructor of SugiyamaLayoutAlgorithm. The default LayerProvider is the SugiyamaLayoutAlgorithm.SimpleLayerProvider, which is restricted to a maximum number of 10 layers (MAX_LAYERS). You can try to use the SugiyamaLayoutAlgorithm.DSFLayerProvider instead as follows:
new SugiyamaLayoutAlgorithm(Direction.VERTICAL, new SugiyamaLayoutAlgorithm.DSFLayerProvider()
If the DSFLayerProvider is not sufficient, you can also implement a custom LayerProvider.
Best regards,
Matthias
[Updated on: Thu, 19 November 2015 16:10] Report message to a moderator
|
|
|
|
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.04850 seconds