Несмотря на то, что проблему с отрисовкой своего графа я решила с помощью GraphViz'а, я успела к тому моменту основательно порыться в Интернете в поисках библиотеки отрисовки графов, плюс сейчас порылась, освежила воспоминания и нашла кое-что новое.
Всегда приятно, когда есть хорошая библиотека для решения какого-либо класса задач. С открытыми исходниками, подробной документацией, живым форумом и прочими прелестями, которые есть у хороших библиотек. Сразу вспоминается Boost.
В Boost Graph library реализовано большое количество алгоритмов на графах, в том числе несколько алгоритмов отрисовки графов, но как-то маловато...
Самая достойная из бесплатных библиотек, что мне встретилась - это Lib tulip, на ней построена демонстрационная программа отрисовки графов Tulip. Документация несколько мутная, но есть. Есть форум, ну и конечно же есть исходники (C++). Умеет несколько двумерных раскладок, умеет рисовать трехмерные графы. Для отрисовки в 3D использует OpenGL.
Остальные бесплатные проекты, что я видела, либо полудохлые, либо им чего-то да не хватает. Привлекательно выглядит uDraw, раньше он назывался daVinci и под старым именем был довольно известен. Он без исходников, но есть дистрибутивы под большое количество платформ: под Windows, под разные Unix'ы...
Пожалуй самой известной библиотекой для отрисовки графов является LEDA, написана на С++. Это не только библиотека отрисовки графов, там много чего есть как касающегося графов, так и не касающегося. Но это платная библиотека, платная даже для вузов. И стоит она немеряно. Насколько мне известно, раньше она была бесплатной для учебных заведений и получила довольно-таки широкое распространение. И часто в форумах в обсуждениях отрисовки графов она упоминается. Но сейчас говорить о ней большого смысла нет. Соответственно, теряют смысл библиотеки, которые написаны на основе LEDA. Это AGD (Algorithms for Graph Drawing), GDT (Graph Drawing Toolkit).
В прошлом посте я упоминала yFiles, на базе которой построена бесплатная программи yEd. yFiles yаписана на Java, есть yFiles.NET. Стоит тоже неслабо.
Вот, собственно и все. Негусто получилось. В принципе, можно взять какую-либо программу для отрисовки графов с открытыми исходниками, и использовать ее в своем проекте. Но это совсем не то, что настоящая библиотека, задача сильно усложняется.
В комментариях упоминались коллекции ссылок на проекты, посвященные отрисовке графов, приведу их здесь. Возможно кому-то удастся отыскать в них еще что-то полезное.
Graph Drawing в каталоге Google
Graph Drawing на dmoz.org
Это продолжение рассказа об отрисовке графов. Начало можно найти тут: Нарисовать граф красиво.