Простой динамический график для C ++ - PullRequest
5 голосов
/ 21 января 2009

Я ищу простую библиотеку макетов для C ++. Я хочу встроить библиотеку в наш визуализатор на основе wxWidgets. Таким образом, я ищу что-то вроде graphviz , кроме динамического - то есть, когда происходит событие, необходимо загрузить только изменение графика, а не полное отображение. Есть dynagraph , но он кажется мертвым проектом. Ранее мне предлагалось использовать VTK - но это тяжеловес.

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

Ответы [ 2 ]

4 голосов
/ 21 января 2009

Макет, который генерирует Graphviz, основан на глобальной структуре - любое добавление может кардинально изменить вывод (если вы не используете фиксированные координаты, в этом случае вы, вероятно, не зададите этот вопрос). По сути, если вы хотите автоматическое размещение элементов, вам нужно принять одно из следующих решений:

  • При размещении нового элемента физическое моделирование запускается в режиме реального времени, в результате чего узлы дико подпрыгивают, пока они не осядут на своих новых местах. Это будет медленно, но покажет "приятные" изменения.
  • Когда помещается новый элемент, весь график перерисовывается (физика / все, что скрыто, но все это изменяется). Это будет быстрее из-за отсутствия необходимости перерисовки, но относительные местоположения узлов могут быть совершенно разными.
  • При размещении нового элемента существующие элементы не изменяются. После достаточного количества динамических обновлений ваш график будет выглядеть как дерьмо, потому что автоматическое размещение является глобальной проблемой оптимизации.

Извините, я не могу помочь с вашим вопросом, но, возможно, это помогает объяснить, почему то, что вы ищете, может просто не существовать (или быть хорошим).

0 голосов
/ 23 января 2009

Чтобы преодолеть некоторые проблемы при использовании graphviz (описанный Томом). Мы устанавливаем мировые координаты визуализатора так, чтобы они совпадали с мировыми координатами graphviz.

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

-

Michael

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...