Graphviz如何控制边缘

4

截图。我要的是右边的图形,但我得到的是左边的图形。我对Graphviz很陌生。我还把节点1和2设置为相同的形状,因为我无法模仿右侧的图像。终端的形状也不完全相同。有人能帮我吗?我的代码如下:

digraph M
{
  style=filled;
  graph [splines = headport];

  START->1
  1->"Is COUNT\nan even\nnumber?"
  "Is COUNT\nan even\nnumber?"->"SUM = SUM +\nCOUNT" [label=TRUE]
  "SUM = SUM +\nCOUNT"->2
  "Is COUNT\nan even\nnumber?"->2 [label=FALSE]
  2->"COUNT = COUNT+1"
  "COUNT = COUNT+1"->"IS COUNT >\n20"
  "IS COUNT >\n20"->1 [label=FALSE]
  "IS COUNT >\n20"->STOP[label=TRUE]


  "Is COUNT\nan even\nnumber?"[shape=diamond]
  "SUM = SUM +\nCOUNT"[shape=rectangle]
  "IS COUNT >\n20"[shape=diamond]
  "COUNT = COUNT+1"[shape=rectangle]
  1[shape=circle]
  2[shape=circle]
  START[shape=record, style="rounded"]
  STOP[shape=record, style="rounded"]
}
1个回答

1
我对你的图表进行了一些更改,以使其更接近你的目标。将样条曲线转换为折线,并将1和2节点的属性更改为更接近你的目标。显然不完美,但希望足够好以帮助并提出其他方式来进一步改进它,而无需进行重大重新设计。
digraph M
{
  style=filled;
  graph [splines = headport splines=polyline];

  START->1
  1->"Is COUNT\nan even\nnumber?"
  "Is COUNT\nan even\nnumber?"->"SUM = SUM +\nCOUNT" [label=TRUE]
  "SUM = SUM +\nCOUNT"->2
  "Is COUNT\nan even\nnumber?"->2 [label=FALSE]
  2->"COUNT = COUNT+1" 
  "COUNT = COUNT+1"->"IS COUNT >\n20"
  "IS COUNT >\n20"->1 [label=FALSE tailport=e]
  "IS COUNT >\n20"->STOP[label=TRUE ]


  "Is COUNT\nan even\nnumber?"[shape=diamond]
  "SUM = SUM +\nCOUNT"[shape=rectangle]
  "IS COUNT >\n20"[shape=diamond]
  "COUNT = COUNT+1"[shape=rectangle headport=n]
  1[shape=point size="0,0" label=""]
  2[shape=point size="0,0" label=""]
  START[shape=record, style="rounded"]
  STOP[shape=record, style="rounded"]
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接