强制两个节点之间的对角线边缘

问题描述 投票:1回答:2

我的问题是 - 是否可以强制图中两个节点之间的对角线?

假设两个节点之间只有一个链接。

digraph G {
    rankdir=TB
    a -> b;
}

这是呈现的内容:

enter image description here

这个(模拟)是我想要的:

enter image description here

假设rankdir应保持机智(TB =从上到下)。我只是想控制一个边缘的角度方向。

我没有在文档中看到有关如何实现这一点的任何内容(查看here)。

所以我的问题是,这种行为是否可能,如果是这样,或者我要求不可能的事情?

graphviz dot
2个回答
2
投票

使用隐藏节点,隐藏连接和正确的样条线设置,您可以获得:

digraph G {
    splines=line
    rankdir=TB
    a:s -> b:n;
    i->b [style=invis]  
    a-> i [style=invis]

{rank= same b i [style=invis]}
}

enter image description here

我认为,与你原来的模型更接近。这值得么?你决定。 :)


1
投票

可能有不同的方法来解决这个问题,但如果没有详细了解您的需求,我不确定这是否真的有用。

对于例如您可以尝试东北 - 西南延伸:

digraph G {
    rankdir=TB
    a:se -> b:nw;
}

edge with nesw extension

© www.soinside.com 2019 - 2024. All rights reserved.