我正在寻找一个开源图形布局算法库,它可以按以下方式运行: 用户发送节点列表(具有不同大小的节点)和边列表作为参数。然后该函数根据库支持的图算法(应至少支持非二叉树图布局)计算节点和边的位置。最后,它返回节点的位置(坐标)供用户在自己的查看器中处理和渲染。 该算法还应该能够更新已经存在的图(插入/删除)。
我正在使用 WPF 渲染数据并创建图表,这是我迄今为止尝试过的:
我本来希望找到一个可以提供此类功能的库,但它似乎有点具体。我应该开始寻找有关如何开发图形布局算法的教程吗?
如果您使用 -Tplain 选项,Graphviz 就会执行此操作
$ echo 'digraph { a->b }' | dot -Tplain
graph 1 0.75 1.5
node a 0.375 1.25 0.75 0.5 a solid ellipse black lightgrey
node b 0.375 0.25 0.75 0.5 b solid ellipse black lightgrey
edge a b 4 0.375 0.99579 0.375 0.88865 0.375 0.7599 0.375 0.64045 solid black
stop
输出语句有四种类型。
graph scale width height
node name x y width height label style shape color fillcolor
edge tail head n x₁ y₁ .. xₙ yₙ [label xl yl] style color
stop
节点 name 值是节点的名称,x 和 y 给出节点的位置。