JUNG не может отображать большие графики?

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

3 ответа

Решение

Итак, есть две вещи, которые JUNG визуализация не всегда хорошо масштабирует прямо сейчас:

  1. итеративно-ориентированные макеты
  2. взаимодействие: выяснение, на какой узел или ребро (если оно есть) ссылаются для событий зависания и щелчка.

Похоже, это последний, с которым вы столкнулись прямо сейчас.

В зависимости от ваших требований у вас есть несколько вариантов:

  • (а) отключить события мыши или, по крайней мере, события зависания
  • (б) взломать систему визуализации, чтобы поиск целей не был O (m + n).

Простые решения для (b) в основном просто делят область просмотра на маленькие кусочки и отправляют события только тем элементам, которые находятся в том же блоке, что и указатель. (Очевидно, чем меньше вы делаете куски, тем больше памяти требуется.)

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

Сколько памяти вы запускаете виртуальную машину? Предполагая, что вы работаете с окнами, глядя на диспетчер задач, виртуальная машина достигает максимального объема выделенной памяти и начинает использовать своп?

Проблема, вероятно, заключается в расчете позиций ваших вершин. Единственный макет, который мне показалось довольно простым для вычисления, - это макет дерева, который, очевидно, подходит не для всех наборов данных.

Решение, вероятно, состоит в том, чтобы написать свой собственный макет с гораздо меньшими вычислениями, чем, скажем, FRLayout.

Другие вопросы по тегам