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

Forcing a diagonal edge between two nodes

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

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

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

这是呈现的内容:

这(模拟)是我想要的:

假设 rankdir 应该保持完整(TB = 从上到下)。我只想控制一条边的角度方向

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

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

可能有不同的方法可以解决这个问题,但是在没有详细了解您的需求的情况下,我不确定这是否真的有帮助。

例如您可以尝试使用 north-east-south-west 扩展名:

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

通过隐藏节点、隐藏连接和适当的样条设置,您可以获得:

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

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

我认为与您原来的 mock-up 更接近。这值得么?你决定。 :)