I'm looking for a tool that will lay-out nodes and arcs on a page and then print the page. I would like the layout so that nodes are not drawn on top of each other, arc lengths are minimized, and that arcs crossing are also minimized. Is JDigraph the correct tool?
Also, I'm looking for a starting point in JDiagraph, but I can't find a single class with a 'main' function. Is there a test routine I can peruse? Thanks.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
JDigraph isn't the correct tool for viewing directed graphs.
JDigraph is a library kit to represent directed graphs analogus to the java collections kit's representation of sets, maps and lists.
JDigraph would be a good place to start building such a tool. The general graph drawing problem is pretty challenging. If you're looking for an interesting PhD thesis with lots of chances to publish, general graph drawing is a great problem to work on.
Most people take advantage of domain-specific knowledge to make drawing thier particular graph easier.
JDigraph doesn't have a main() because it's a code library. The tests are all JUnit tests. Have a look at the source for net.walend.digraph.test.TestCEDigraphFactory for a good starting point.
Hope that helps,
Dave
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Actually the correct tool is jzGraph, also hosted here on sourceforge. I have found it very amenable interfacing with other tools such as gnu.jpdf (for rendering to pdf) and jdepend (for isolating dependencies between java packages). In a general way it sounds as if there could be a match between jpdf and jzGraph as a rendering layer for this project.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I can't tell you if JDigraph is the correct tool, but I can tell you there are many similar packages. Do a search on Source Forge for "Java graph" using require all. Amongst the results, you will find about a half dozen projects for developing graph algorithms and data structures. You can reduce the number of false hits by adding "theory" and "algorithm" to the search, but that will also eliminate projects that you probably consider relevant.
For visualization, there is a really good summary of available offerings here:
I'm looking for a tool that will lay-out nodes and arcs on a page and then print the page. I would like the layout so that nodes are not drawn on top of each other, arc lengths are minimized, and that arcs crossing are also minimized. Is JDigraph the correct tool?
Also, I'm looking for a starting point in JDiagraph, but I can't find a single class with a 'main' function. Is there a test routine I can peruse? Thanks.
Hi Mike,
JDigraph isn't the correct tool for viewing directed graphs.
JDigraph is a library kit to represent directed graphs analogus to the java collections kit's representation of sets, maps and lists.
JDigraph would be a good place to start building such a tool. The general graph drawing problem is pretty challenging. If you're looking for an interesting PhD thesis with lots of chances to publish, general graph drawing is a great problem to work on.
Most people take advantage of domain-specific knowledge to make drawing thier particular graph easier.
JDigraph doesn't have a main() because it's a code library. The tests are all JUnit tests. Have a look at the source for net.walend.digraph.test.TestCEDigraphFactory for a good starting point.
Hope that helps,
Dave
Actually the correct tool is jzGraph, also hosted here on sourceforge. I have found it very amenable interfacing with other tools such as gnu.jpdf (for rendering to pdf) and jdepend (for isolating dependencies between java packages). In a general way it sounds as if there could be a match between jpdf and jzGraph as a rendering layer for this project.
I can't tell you if JDigraph is the correct tool, but I can tell you there are many similar packages. Do a search on Source Forge for "Java graph" using require all. Amongst the results, you will find about a half dozen projects for developing graph algorithms and data structures. You can reduce the number of false hits by adding "theory" and "algorithm" to the search, but that will also eliminate projects that you probably consider relevant.
For visualization, there is a really good summary of available offerings here:
Open Source Graph or Network Visualization Written in Java
http://www.manageability.org/blog/stuff/open-source-graph-network-visualization-in-java/view