1 | |
Визуализация графов10.02.2013, 19:55. Показов 29347. Ответов 38
Метки нет (Все метки)
В общем есть такой пакет http://ru.wikipedia.org/wiki/Graphviz
С помощью него можно вводить граф ввиде dot файла и получать её визуализацию ( вершины графа располагаются оптимальным образом ) Описание утилит на русском тут http://rus-linux.net/nlib.php?... 10-16.html Оф. сайт http://www.graphviz.org/ Тут же можно скачать и установить, причем как пакет с утилитами и dll -ками, инклюдами так и сами соры. Сама библиотека написана на Си. Никак не могу понять как использовать эту либу в своих программах. Пытаюсь скомпилить примеры из доки но без успешно то ли программа завершается крахом то ли требует несуществующие dll. Возможно кто-то имел дело с этой библиотекой и знает как её использовать?
2
|
10.02.2013, 19:55 | |
Ответы с готовыми решениями:
38
Теорие графов. Композиция двух неор. графов. Представление графов С++ Представление графов С++ Программирование графов |
18.02.2013, 22:51 [ТС] | 22 |
Это чЁ такое?
Qt класс или обвертка Qt над тем же GraphViz ? Добавлено через 1 минуту А какое тут задание ? Тут вопрос прикрутки либы ... думаю использовать было бы не проблема...
0
|
20.02.2013, 22:52 [ТС] | 23 |
Хорошо если нельзя получить координаты напрямую с помощью прикрутки либы к С++ программе то как ?
Вызывать dot.exe и парсить dot - файл который получается на выходе вытаскивая координаты ? Или возможно есть готовый редактор который позволяет редактировать и передвигать узлы ?
0
|
24.02.2013, 18:10 [ТС] | 24 |
Для того что бы попробовать реализовать алгоритм визуализации самому создал новую тему Визуализация графа (реализация алгоритма)
0
|
127 / 131 / 11
Регистрация: 25.12.2011
Сообщений: 443
|
|
13.05.2013, 15:38 | 25 |
Если просто попользоваться, то довольно удобен yEd. А для встраивания в программу я бы тоже раскладку делал на основе graphviz, он умеет отдавать координаты для вершин и для контрольных точек сплайнов, через которые ребра представляются.
0
|
13.05.2013, 15:44 [ТС] | 26 |
Чет не видел там варианта для С++, а внешне можно и GraphViz использовать только это порождает другие проблемы.
Под Windоws, GraphViz не получается использовать как библиотеку в том то и проблема !!! Читай тему сначала ...
0
|
127 / 131 / 11
Регистрация: 25.12.2011
Сообщений: 443
|
|
13.05.2013, 16:31 | 27 |
Так это "готовый редактор который позволяет редактировать и передвигать узлы", сам им периодически пользуюсь. А на чем он написан не важно.
Можно вызывать как подпроцесс и парсить его выход, если уж совсем все так плохо.
0
|
127 / 131 / 11
Регистрация: 25.12.2011
Сообщений: 443
|
|
13.05.2013, 17:02 | 29 |
Умеет автоматическую раскладку, там в ролике показывается.
Ну раз dot не подходит, можно еще в svg получать раскладку, для него уже готовые парсеры есть. А лучше всего собрать из исходников самому и вызывать напрямую.
0
|
13.05.2013, 17:07 [ТС] | 30 |
Ха собрать ... под Windows ? по мойму сильно оптимистично. К тому же там вроде исходники только старых версий...
Вопрос в том что под Ubuntu все работает без проблем ... Да и сами утилиты как-то работают же ? Насчет готовых парсеров не слышал вообще, в любом это через десятую дорогу.
0
|
670 / 198 / 29
Регистрация: 10.05.2012
Сообщений: 595
|
|
13.05.2013, 17:50 | 33 |
Avazart, это будет крайне наглядно и очень удобно. Лично моё мнение, так как сам уже делал.
Добавлено через 1 минуту Avazart, http://www.youtube.com/watch?v=FjY3EPR369o
0
|
13.05.2013, 17:55 [ТС] | 34 |
Ну и где тут наглядность ? Красиво да, но явно не наглядно...
К тому же с реализацией тоже придется попотеть ибо тоже как то надо расставлять вершины, тоже нужно считать... Ко всем проблемам добавляется еще и 3D графика ... Да и то что делает graphviz тоже можно реализовать только это затраты и время, при том что уже это реализовано и работает по крайней мере в Linux
0
|
13.05.2013, 18:03 [ТС] | 36 |
Ага а кто вершины расставлять будет в 3d проекции ?
Насколько это будет наглядным если необходимо буде отображать надпись возле каждой вершины,ребра ? Как дать возможность двигать элементы пользователю в 3D ?
0
|
670 / 198 / 29
Регистрация: 10.05.2012
Сообщений: 595
|
|
13.05.2013, 18:19 | 37 |
Вы хотите сказать, вам сложно взять обычное распределение координат вершин в пространстве ?
"наглядность" заключается в равномерности распределения, с учётом min расстояния между парой вершин графа. Алгоритмом Флойда вам в помощь, тут O(N^3). Добавлено через 5 минут Можно придумать и быстрее, возможно, хотя и сомнительно, но вам нужна простота. Добавлено через 1 минуту Avazart, Вообще, вы правы, раскидать вершины в пространстве, будет посложнее чем 3д написать, но времени не займёт много всё равно. Я, вообще, упругими связями их раскидывал, прибегнув к физической модели, алгоритм ооочень простой, но не max "наглядно"
0
|
5 / 6 / 4
Регистрация: 18.11.2009
Сообщений: 661
|
|
25.06.2014, 20:47 | 38 |
Работая в программах на С++ с графами я тоже сталкивался с проблемой визуализации. Она решалась мной примерно так. Характеристики граaа (вершины и списки инцидентности или матрица смежности в подобных задачах удобно хранить в файле или БД MS Access. Но кроме характеристик вершин храните дополнительно и ее пару координат.Функцию отрисовки графа в Delphi или C++ Builder не так сложно написать. (единственное усложнение -отрисовка связей со стрелками в случае орграфа). Для каждой вершины создается при работе в VCL визуальный объект - лучше всего TStaticText , сойдет и TButton - правда нет управления цветом и переносом текста.
При их создании закладывают возможность передвижения их юзером с помощью мышки по экрану. Другими словами, граф 1-й раз как-то загружается. Юзер распутывает клубок расставляя вершины по своему усмотрению. И следующее сохранение в файл и следующая загрузка уже будут с "хорошими" координатами.
0
|
Avazart
|
25.06.2014, 21:22
[ТС]
Визуализация графов
#39
|
0
|
25.06.2014, 21:22 | |
25.06.2014, 21:22 | |
Помогаю со студенческими работами здесь
39
Теория графов Реализация графов Визуализация Визуализация Генерирование особых графов Методы обхода графов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Это работает. Скорость асинхронной логики велика. Вопрос видимо останется в стабильности. Плата - огонь!
Hrethgir 13.01.2025
По прошлому проекту в Logisim Evolution прилагаю файл архива проекта Gowin Eda и снимок. Восьмибитный счётчик из сумматора+ генератор сигнала согласования+ стартер fast регистров. Файлы прилагаю. . . .
|
UserScript для подсветки кнопок языков программирования в зависимости от текущего раздела
volvo 13.01.2025
В результате работы этого скрипта подсвечиваются нужные кнопки не только в форме быстрого ответа, но и при редактировании сообщения:
/ / ==UserScript==
/ / @name CF_DefaultLangSelect
/ / . . .
|
Введение в модели и алгоритмы машинного обучения
InfoMaster 12.01.2025
Машинное обучение представляет собой одну из наиболее динамично развивающихся областей искусственного интеллекта, которая фокусируется на разработке алгоритмов и методов, позволяющих компьютерам. . .
|
Как на Python создать нейросеть для решения задач
InfoMaster 12.01.2025
В контексте стремительного развития современных технологий особое внимание уделяется таким инструментам, как нейросети. Эти структуры, вдохновленные биологическими нейронными сетями, используются для. . .
|
Как создать нейросеть для генерации картинок на Python
InfoMaster 12.01.2025
Генерация изображений с помощью искусственных нейронных сетей стала одним из наиболее захватывающих направлений в области компьютерного зрения и машинного обучения. В этой статье мы рассмотрим. . .
|
Создание нейросети для генерации текста на Python
InfoMaster 12.01.2025
Нейросети, или искусственные нейронные сети, представляют собой модели машинного обучения, вдохновленные работой человеческого мозга. Они состоят из множества взаимосвязанных узлов, или "нейронов",. . .
|
Как создать нейросеть распознавания изображений на Python
InfoMaster 12.01.2025
Введение в распознавание изображений с помощью нейросетей
Распознавание изображений с помощью нейронных сетей стало одним из самых впечатляющих достижений в области искусственного интеллекта. Эта. . .
|
Основы искуственного интеллекта
InfoMaster 12.01.2025
Искусственный интеллект (ИИ) представляет собой одну из наиболее динамично развивающихся областей современной науки и технологий. В широком смысле под искусственным интеллектом понимается способность. . .
|
Python и нейросети
InfoMaster 12.01.2025
Искусственные нейронные сети стали неотъемлемой частью современных технологий, революционизировав множество областей - от медицинской диагностики до автономных транспортных средств. Python, благодаря. . .
|
Python в машинном обучении
InfoMaster 12.01.2025
Python стал неотъемлемой частью современного машинного обучения, завоевав позицию ведущего языка программирования в этой области. Его популярность обусловлена несколькими ключевыми факторами, которые. . .
|
Создание UI на Python с TKinter
InfoMaster 12.01.2025
TKinter — это одна из наиболее популярных библиотек для создания графических интерфейсов пользователей (GUI) в языке программирования Python. TKinter входит в стандартную библиотеку Python, что. . .
|
HTML5 в разработке мобильных приложений
InfoMaster 12.01.2025
Введение: Обзор роли HTML5 в мобильной разработке
В современном мире мобильных технологий HTML5 стал ключевым инструментом для разработки кроссплатформенных приложений. Эта технология произвела. . .
|