gpt4 book ai didi

graph - Graphviz Dot 中奇怪的边缘位置

转载 作者:行者123 更新时间:2023-12-04 17:40:54 24 4
gpt4 key购买 nike

我有一个模块可以自动输出(以点格式)用某种汇编语言(我的编译器的 IR)编写的函数。节点是使用“记录”形状打印的基本 block 。问题是边缘采取了一条奇怪的路线,例如:

digraph {
node [shape = record];
n0[label="{<name> entry | <body> store i, 0\nstore sum, 0\ngoto test | {<target> target}}"];
n1[label="{<name> test | <body> t2 = load i\nif t4, body, done | {<true> true | <false> false}}"]
n2[label="{<name> body | <body> t5 = load sum\ngoto test | {<target> target}}"];
n3[color=firebrick3, label="{<name> done | <body> t9 = load sum\nret t9}}"];
n0:target:s -> n1:name:n
n1:true:s -> n2:name:n
n1:false:s -> n3:name:n
n2:target:s -> n1:name:n
}
还有一张图片:


我该怎么做才能使从“目标”到“测试”的边缘放在左侧?

最佳答案

最简单的非大师方法是强制将任性链接附加在“西”侧。

n2:target:w -> n1:name:w

这可能适用于这种情况。一种更通用的方法,但需要更多的思考和编码,但如果您愿意,将允许边缘附加到 :s 和 :n ,添加一个大小为零的不可见节点(颜色=白色,或者可能存在可见性属性)并使用两条边从 n2 到 n1。只在其中一个上有箭头。不可见节点必须位于 n1 或 n2 的左侧。唉,我的 graphvis-fu 不够强大,无法创建一个工作示例;也许其他人可以创建一个。

alt text

关于graph - Graphviz Dot 中奇怪的边缘位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4106972/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com