【问题标题】:Starting an edge from within a node从节点内开始一条边
【发布时间】:2013-02-23 00:58:56
【问题描述】:
digraph foo {
a [label="<first> A | <rest> rest", shape=record];
b [label="<first> B | <rest> rest", shape=record];
a:rest -> b [label="foo", arrowtail=dot, dir=both];
}

我想从 a:rest(最好在中心)开始边缘的尾部(a 到 b),这可能吗?

我正在尝试使用框和指针之类的符号来绘制链表。

【问题讨论】:

    标签: linked-list visualization graphviz


    【解决方案1】:

    是的,这是可能的。要使用的属性称为tailclip

    如果为真,则边缘的尾部被剪裁到尾部的边界 节点;否则,边的末端到达节点的中心, 或港口中心(如果适用)。

    只需将最后一行更改为

    a:rest -> b [label="foo", arrowtail=dot, dir=both, tailclip=false];
    

    编辑:正如 @Kyborek 在 cmets 中提到的,当前版本的 graphviz 需要一个额外的指南针:

    a:rest:c -> b [label="foo", arrowtail=dot, dir=both, tailclip=false];
    

    另见this answer

    【讨论】:

    • 好的,这是实现这个的指令,这个应该工作,但它看起来没有,取决于系统和graphviz版本。它适用于graphviz-dev.appspot.com,但不适用于我的本地安装(graphviz 2.27 和 2.28)。
    • 是的,我无法让它正常工作 - 知道该网站使用什么版本吗?
    • 不,我不知道哪个版本。
    • 这个解决方案对我也不起作用。该功能已更新,所有内容都在这个问题stackoverflow.com/questions/13898151/… 中进行了解释,以防有人在这里绊倒。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-23
    • 1970-01-01
    • 1970-01-01
    • 2020-10-31
    • 1970-01-01
    相关资源
    最近更新 更多