Использование библиотеки GLEE для визуализации графов

Post date: Mar 20, 2011 6:43:25 AM

Ниже рассмотрены основные шаги, которые необходимо выполнить для использования библоиотеки GLEE (по материалам Валентины Кустиковой). Эту библиотеку можно использовать в некоммерческих целях.

  • Скачиваем дистрибутив библиотеки GLEE и устанавливаем его.
  • Подключаем визуальную компоненту GLEE в Microsoft Visual Studio:
    1. Кликаем правой кнопкой мыши внутри вкладки Toolbox (чтобы открыть вкладку необходимо выполнить View->Toolbox).
    2. В появившемся меню выбираем Choose Items...
    1. Открываем вкладку .NET Framework Components.
    2. Нажимаем кнопку Browse.
    1. Указываем dll-ку Microsoft.GLEE.GraphViewerGDI.dll (добавится комонент GViewer).
    2. Нажимаем кнопку OK.
    3. В Toolbox во вкладке General появится новая визуальная компонента GViewer.
  • Выставляем в проекте ссылки на .Net сборки:
    1. Кликаем правой кнопкой по проекту, выбираем из меню вкладку References.
    1. В дереве справа выбираем вкладку Common Properties->Frameworks and References.
    2. Нажимаем кнопку Add New Reference...
    1. Выбираем вкладку Browse.
    2. В поле Look in идем по тому пути, где лежит установленная библиотека (по умолчанию это путь следующего вида c:\Program Files\Microsoft Research\GLEE\bin)
    3. Выбираем все dll-ки и жмём OK.
  • Перетаскиваем компоненту GViewer на форму. Дадим ей имя gViewer.
  • В исходном файле формы:
    1. Добавляем пространство имен (using namespace Microsoft::Glee::Drawing;).
    2. Чтобы работать с графом, достаточно использовать 2 метода AddNode (добавление узла) и AddEdge (добавление ребра). Ниже показан пример использования.

Graph ^g = gcnew Graph("graph");

g->AddNode("1"); // добавление узла с идентификатором 1

g->AddNode("2"); // добавление узла с идентификатором 2

g->AddNode("3"); // добавление узла с идентификатором 3

g->AddNode("4"); // добавление узла с идентификатором 4

g->AddEdge("1", "9", "2"); // добавление ребра от узла 1 к узлу 2 с меткой 9

g->AddEdge("2", "-7", "4");// добавление ребра от узла 2 к узлу 4 с меткой -7

g->AddEdge("1", "2", "3"); // добавление ребра от узла 1 к узлу 3 с меткой 2

gViewer->Graph = g;