как организовать узлы графа для рисования с помощью java 2d

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

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

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

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


person elias    schedule 09.02.2011    source источник
comment
Вы упоминаете awt и JFrame? Вы использовали AWT или Swing? или оба?   -  person jzd    schedule 09.02.2011
comment
Оба. Графический интерфейс JFrame и методы рисования AWT   -  person elias    schedule 09.02.2011


Ответы (2)


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

Кроме того, на их веб-сайте есть список ресурсов, относящихся к теории рисования графов, который звучит точно так же, тебе нужно.

person ZoFreX    schedule 09.02.2011
comment
Мне действительно нужно реализовать, не используя какую-либо библиотеку. это для колледжа. Я просмотрел код графвиза и не нашел ничего полезного или простого для понимания =/ - person elias; 09.02.2011
comment
Я нашел еще кое-что полезное на их сайте — graphviz.org/Theory.php — это список статей, книг и т.д. на тему рисования графиков. Подозреваю, что эта проблема будет нетривиальной, удачи! - person ZoFreX; 09.02.2011

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

person Thomas the Tank Engine    schedule 09.02.2011