Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Open source libraries to design directed graphs [closed]

I'm going to need to write a program that takes a list of persons and connects them together in a directed-graph-like manner. The GUI aspect of the whole project is very important. The graph must allow a lot of interaction. Such as selecting several people and hiding the others, moving them around.

Additionally, the software will need to be able to provide other kind of GUI-features such as several tabs, text boxes etc.

The application must be quite efficient. As in, it must be able to handle hundreds if not thousands of widgets.

Hence, I would like to know which open source libraries (at this point the programming language they are written in does not matter - I just want an overview of everything good that is out there) would allow me to develop such piece of software? What would you recommend?

Edit: Could you please also link to tutorials explaining how I could program a GUI that can interact with the generated graph? For example mouse events.

like image 501
Benjamin Avatar asked Mar 04 '10 05:03

Benjamin


3 Answers

How about JGraphT in combination with JGraph.

Check here for a simple demo with basic interaction

like image 147
jitter Avatar answered Sep 28 '22 16:09

jitter


Take a look at Graphviz, especially its lefty component. It should satisfy your needs.

http://en.wikipedia.org/wiki/Graphviz

like image 27
Vlad Avatar answered Sep 28 '22 18:09

Vlad


Depending on your actual goal and needs, you might consider taking a look at processing.org. The site has many demos and like many other libraries, it is free. Using Processing does not require you to learn much. It is similar to Java and written in Java, but allows you to ignore much of the Java structure and code and just do what you want.

Since you mentioned that you would want to use x or y to code in, it sounds like you have not made a language decision, so this might be worth your time. Spend 15 minutes there and look at the demos to see if it provides what you are looking for. If speed to a single solution is one of your criteria, this might do it.

like image 40
MJB Avatar answered Sep 28 '22 16:09

MJB