Страница 1 из 1
Визуализация графов
Добавлено: 25 апр 2009, 18:43
mr.Romkin
Необходимо визуализировать (на форме) граф (произвольный) . Каждая вершина графа может представлять собой еще один произвольгый граф. При щелчке на вершину графа можно перейти к просмотру этого нового графа. При необходимости пользователь может "развернуть" вложенный в вершину граф и отобразить его так сказать на родительском графе (и снова свернуть).
Подскажите, каким готовым (бесплатным) контролом воспользоваться для реализации этой задачи на C# в VS2008? Или может есть какие другие попроще пути решения??
Re: Визуализация графов
Добавлено: 27 апр 2009, 17:12
Romeo
Боюсь, что стандартных контролов не оказалось бы, даже если бы ты просто хотел отобразить граф. Если же тебе ещё нужен и "граф в графе", то будь уверен - стандартных готовых решений нет. Только самостоятельная отрисовка. Не столь подобная задача распространена (скажу более, я подобную постановку вообще первый раз слышу), чтобы уже имелся готовый компонент.
Re: Визуализация графов
Добавлено: 28 апр 2009, 13:47
mr.Romkin
Вот поэтому мне и предстоит это реализовать в бакалаврской работе =(((
Кто может подскажет, посредством чего лучше это рисовать?
Re: Визуализация графов
Добавлено: 28 апр 2009, 19:27
Naeel Maqsudov
Нарисовать кружочки, соединенные линиями это не проблема.

А вот как эти кружочки расположить, чтобы иметь удобное для восприятия минимизированное пересечение рёбер. Вот это и есть главная проблема.
Самая простая и весьма действенная идея - это расположить вершины графа по кругу.
Re: Визуализация графов
Добавлено: 08 май 2009, 06:41
mr.Romkin
Naeel Maqsudov, допустим есть алгоритм, как красиво расположить вершины. С помощью чего мне будет (начинающему) быстро освоить и нарисовать все эти кружочки и линии?? ;-)
Re: Визуализация графов
Добавлено: 08 май 2009, 11:06
WinMain
А тебе нужен именно С#?
Обычный Visual C++ не подойдёт для твоей задачи?
Проблема скорее не в отрисовке самого графа. Расположить окружности по заданным координатам и провести линии между ними - это довольно легко сделать. Здесь важно продумать саму объектную модель, которая будет описывать массив с данными и связи между ними, динамическую вставку и удаление элементов. А так же реакцию на события мыши и клавиатуры.
Re: Визуализация графов
Добавлено: 08 май 2009, 14:30
mr.Romkin
WinMain, ты считаешь, что лучше на C++ писать? Опять же - с помощью чего?? ;-)
Re: Визуализация графов
Добавлено: 08 май 2009, 15:49
WinMain
Писать лучше на том языке, который ты сам хорошо знаешь. С++ в данном случае ничем не лучше. Но, поскольку С++ намного старше, чем C#, то тебе легче будет найти уже готовые реализации граф-контейнеров и граф-рендереров именно на С++.
Вот к примеру одна из таких реализаций на С++...
http://www.ncbi.nlm.nih.gov/IEB/ToolBox ... ainer.html