Найти в Дзене
Ржавый код

Интерактивная визуализация графиков с помощью egui_graphs

Оглавление

Недавно библиотека визуализации графиков `egui_graphs`, написанная на rust и работающая на базе `egui` для пользовательского интерфейса и `petgraph` в качестве серверной части `graph`, вышла в версии 0.3.0. Чтобы отпраздновать эту веху, я хотел бы продемонстрировать, насколько просто визуализировать граф и добавить интерактивности с помощью этого инструмента.

Шаг 1: Настройка структуры `InteractiveApp`.

Сначала давайте определим структуру `InteractiveApp`, которая будет содержать граф.

-2

Шаг 2: Реализация функции `new()`.

Далее давайте реализуем функцию `new()` для структуры `BasicApp`.

-3

Здесь мы вызываем функцию `generate_graph()`. Допустим, нам нужно 30 узлов и 60 ребер.

Шаг 3: Функция случайного графа.

Теперь мы создаем функцию generate_graph.

-4

Шаг 4: Реализация функции update().

Теперь давайте реализуем функцию `update()` для нашего `Interactiveapp`. Эта функция создает виджет `egui_graphs::GraphView`, предоставляющий изменяемую ссылку на наш граф, и добавляет его в `egui::CentralPanel`, используя функцию `ui.add()` для добавления виджетов.

-5

Здесь мы инициализируем `GraphView` с помощью функции конструктора `with_interactions` и передаем туда экземпляр `SettingsInteraction` со свойствами взаимодействия. По сути, это место, которое добавляет все взаимодействия в виджет.

Шаг 5: Запуск приложения.

Наконец, запустите приложение, используя функцию `run_native()` с указанными собственными параметрами и `InteractiveApp`.

-6

Как только приложение будет запущено, мы увидим полностью интерактивный график с возможностью перетаскивания и выбора узлов.

-7

Полный код для этого примера:

-8

Статья на list-site.