2011-02-09 3 views
2

Я создал программу, которая строит и рисует вложенные циклические графики (с неориентированными ребрами) в JFrame с использованием java awt.Как организовать вершины графа с помощью java 2d

Проблема заключается в том, что если положение узлов не указано явно или не создано случайно, граф становится очень грязным, с пересечением ребер и вершинами.

Я хотел бы реализовать алгоритм для репозиционирования, чтобы лучше распределять узлы более однородным и чистым способом.

Может кто-нибудь мне помочь?

+0

Вы упоминаете awt и JFrame? Вы использовали AWT или Swing? или оба? – jzd

+0

Оба. GUI JFrame и методы рисования AWT – elias

ответ

1

Возможно, вы захотите посмотреть на GraphViz, который представляет собой программу, которая выполняет именно это (визуализировать графики). У этого есть Java API, поэтому вы можете интегрировать его в свою программу, и это с открытым исходным кодом, поэтому, если вы предпочтете реализовать решение самостоятельно, возможно, их код может дать некоторое вдохновение (просто не забудьте проверить лицензию!)

Кроме того, их сайт имеет a list of resources pertaining to graph drawing theory, который звучит точно так, как вам нужно.

+0

Мне действительно нужно реализовать, не используя никакой библиотеки. это для колледжа. Я посмотрел на код для графика и не нашел ничего полезного или легкого для понимания =/ – elias

+0

Я нашел несколько полезных материалов на своем сайте - http://www.graphviz.org/Theory.php - список статей, книг и т. Д. на тему рисования графиков. Я подозреваю, что эта проблема будет нетривиальной, удачи! – ZoFreX

0

JGraphX является родной Java и включает в себя автоматические варианты компоновки. Отказ от ответственности - я вношу свой вклад в проект.