【问题标题】:Graph rendering software, which respects relative order of Nodes and Edges图形渲染软件,尊重节点和边的相对顺序
【发布时间】:2018-01-04 06:56:00
【问题描述】:

我正在为一组给定的节点和边生成一个(GraphViz)“点”文件。节点在 y 维度上排序,rank=same,在等级内的 x 维度上。边缘按应绘制的顺序排序。不幸的是,“点”不尊重 x 维度的顺序。如果可以,我将实现平面有向图的无交叉布局。不管它们是循环的还是非循环的。

我的问题:

  1. 如何告诉“点”尊重节点和边的相对顺序
  2. 是否有“点”的替代方案,它尊重相对顺序,即接受布局并进行物理渲染。

抱歉,无法上传点文件。Sample.dot file

【问题讨论】:

    标签: graphviz dot graph-layout


    【解决方案1】:

    非常感谢。我认为“等级=相同;0;8;”隐含的意思与“rank=same;0->8 [style=invis];”相同。 无论如何,我关心的不是跨界。这似乎是一个错误,因为 (6) 和 (2) 有足够的空间来绘制一条线。必须将所有内容向右移动一点。 我的算法生成一个顺序,使得每个树(绿色)边缘可以向下/向右绘制,每个交叉(橙色)边缘向下/向左绘制,每个后(红色)边缘向上/向左绘制。如果图形是平面,则没有交叉点。为了实现这一点,必须将 (8) 绘制到 (0) 的右侧。我真的很高兴,因为如果我使用你的技术,就会发生这种情况。

    digraph {
        graph [charset=latin1, size ="19,46, 11,12"]
        node [shape=box, fontname="Comic Sans MS", fontsize=8, height=0.2, width=0.2, ordering=out]
    { rank=same; 0 -> 8 [style=invis]; }
    { rank=same; 1; }
    { rank=same; 2; }
    { rank=same; 5 -> 9; [style=invis]; }
    { rank=same; 6 -> 7 -> 10; [style=invis]; }
    { rank=same;3; }
    { rank=same;4; }
    0 -> 1 [color=green]
    1 -> 2 [color=green]
    8 -> 2 [color=orange]
    2 -> 5 [color=green]
    5 -> 6 [color=green]
    6 -> 2 [color=red, tailport=w, headport=w]
    5 -> 7 [color=green]
    7 -> 4 [color=green]
    2 -> 3 [color=green]
    2 -> 9 [color=green]
    9 -> 10 [color=green]
    10 -> 3 [color=orange]
    3 -> 4 [color=orange]
     }
    

    以及它的布局1

    【讨论】:

      猜你喜欢
      • 2011-08-16
      • 1970-01-01
      • 1970-01-01
      • 2017-06-02
      • 2017-12-16
      • 1970-01-01
      • 1970-01-01
      • 2021-10-11
      • 1970-01-01
      相关资源
      最近更新 更多