Несмотря на то, что проблему с отрисовкой своего графа я решила с помощью 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
Это продолжение рассказа об отрисовке графов. Начало можно найти тут: Нарисовать граф красиво.
Thanksgiving
5 дней назад
8 коммент.:
libgraph и libagraph - возможность использовать GraphViz из своей программы.
Кстати, для Питона тоже есть удобный wrapper для GraphViz: pydot.
Я надеюсь, меня не съедят за то, что я использую не C++ :-).
для .NET очень удобная штука:
http://netron.sourceforge.net/
Есть еще несколько библиотек, которые показались мне любопытными:
http://www.oreas.com/products_en.php
http://www.tomsawyer.com/home/products.php
http://www.lassalle.com/index.html
http://www.algorithmic-solutions.com/leda/ledak/index.htm
Бесплатная версия LEDA
А каким образом вам удалось использовать GraphViz?
Лично мне не удалось его использовать под Windows как библиотеку в своих приложениях на С++
http://www.cyberforum.ru/cpp-beginners/thread783380.html
Анонимный комментирует...
А каким образом вам удалось использовать GraphViz?
Я не библиотеки подключала, а готовые экзешники запускала.
Ну так я думал название блога говорит именно про библиотеки C/C++.
Вводите в заблуждение.
Отправить комментарий