Графвиз или Dynagraph для Программы Графика-манипуляции? - PullRequest
6 голосов
/ 11 марта 2010

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

Я пытаюсь выбрать библиотеку макетов для использования. Насколько я могу судить, двумя ведущими кандидатами являются Графвиз и Динаграф. Веб-сайт Dynagraph предполагает, что Graphviz предназначен для рисования статических графиков, и что Dynagraph был разветвлен из Graphviz и содержит алгоритмы для графиков, которые будут обновляться. У него есть пример программы под названием Dynasty, которая делает именно то, что я хочу. Тем не менее, сайт Graphviz содержит пример программы под названием Lefty, которая, кажется, делает именно то, что я хочу. Судя по результатам Google (и SO), графвиз также, по-видимому, используется гораздо шире.

Наконец, я хотел бы закодировать часть GUI на языке, таком как Python или Scheme, что заставляет меня немного колебаться в использовании C ++, потому что я понимаю, что это труднее связать с интерпретаторами.

Итак, мой вопрос: какая библиотека лучше для того, что я пытаюсь сделать? У них обоих есть сильные и слабые стороны? Один из них фактически прекратил разработку и просто оставляет свой сайт, чтобы сбить меня с толку?

(Я видел Простое отображение динамического графика для C ++ и Библиотеки с открытым исходным кодом для разработки ориентированных графов , но я не могу сказать, правы ли они относительно Graphviz или Выбор Dynagraph из-за левши, а также языковой проблемы.)

1 Ответ

1 голос
/ 18 апреля 2011

Попробуйте Открыть Graph Drawing Framework . Это лучшее, что я видел.

...