【问题标题】:Simple Dynamic Graph Display for C++C++ 的简单动态图形显示
【发布时间】:2010-10-02 14:46:48
【问题描述】:
我正在寻找一个简单的 C++ 图形布局库。我想将该库嵌入到我们基于 wxWidgets 的可视化器中。总之,我正在寻找类似graphviz 的东西,除了动态的——即当事件发生时,只需要加载图形的变化,而不是完整的显示。有dynagraph,但它似乎是一个死项目。以前有人建议我使用 VTK - 但它是重量级的。
我正在寻找可用于商业用途的开源、非 copyleft 类型的库(GPL 已退出,LGPL 应该没问题)。我愿意接受谷歌不会给出的建议。
【问题讨论】:
标签:
c++
visualization
real-time
【解决方案1】:
在使用 graphviz 时克服一些问题(由 Tom 描述)。
我们将可视化工具的世界坐标设置为与 graphviz 的世界坐标一致。
那么。假设每个视觉元素都有一个唯一的标识符,使用这些元素构建一个图形。将图形输出为文本。根据输出解析重新调整所有内容。 ?
--
迈克尔
【解决方案2】:
Graphviz 生成的布局基于全局结构 - 任何单个添加都可以显着改变输出(除非您使用固定坐标,在这种情况下您可能不会问这个问题)。基本上,如果您想要自动放置元素,您需要接受以下解决方案之一:
- 当放置新元素时,会实时运行物理模拟,导致节点疯狂反弹,直到它们安顿到新位置。这会很慢,但会显示出“令人愉悦”的变化。
- 放置新元素时,会重新绘制整个图形(物理/隐藏的任何内容,但会修改整个内容)。由于不必重绘,这会更快,但节点的相对位置可以完全不同。
- 放置新元素时,不会修改现有元素。进行足够多的动态更新后,您的图表将看起来很糟糕,因为自动放置是一个全局优化问题。
抱歉,我无法回答您的问题,但也许这有助于解释为什么您正在寻找的东西可能根本不存在(或没有任何好处)。