首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在GraphViz中为带有splines=“弯曲”的边设置折弯方向?(使用neato)

如何在GraphViz中为带有splines=“弯曲”的边设置折弯方向?(使用neato)
EN

Stack Overflow用户
提问于 2015-06-18 21:39:29
回答 1查看 1.3K关注 0票数 7

我正在创建一个带有手动定位节点的图形,并在它们之间使用splines=“弯曲”类型的边。

代码语言:javascript
复制
digraph graphname {
  splines="curved";
  node[shape = box, margin="0.03,0.03", fontsize=11, height=0.1, width=0.1,  fixedsize=false];

  "LeftFoot\nRightHand" [pos="-150,-150!"];
  "RightFoot\nRightHand" [pos="-90,-150!"];
  "LeftFoot\nRightFoot" [pos="0,-150!"];
  ...

  edge[style = solid,fontsize=11];
  "LeftFoot\nRightFoot":n -> "RightFoot\nRightHand":n [label = "3", penwidth = 1, color = "red"];
  "LeftFoot\nRightFoot":s -> "LeftFoot\nRightHand":s [label = "7", penwidth = 1, color = "red"];
  ...
}

问题是其中一条边弯曲到了错误的一侧,所以它通过了一个节点:

有没有简单的方法来解决这个问题,比如TikZ中的“向左弯曲”或“向右弯曲”?

我尝试在边上使用pos属性来设置样条线控制点来更改折弯,但是这看起来根本不会更改边。

EN

回答 1

Stack Overflow用户

发布于 2020-06-19 18:51:33

在Grapvhiz 2.38中,这个问题似乎已经解决了。我稍微缩放了pos,但保留了代码的其余部分:

点源码:

代码语言:javascript
复制
digraph graphname {
  splines="curved";
  node[shape = box, margin="0.03,0.03", fontsize=11, height=0.1, width=0.1,  fixedsize=false];

  "LeftFoot\nRightHand" [pos="-2,-2!"];
  "RightFoot\nRightHand" [pos="-1.2,-2!"];
  "LeftFoot\nRightFoot" [pos="0,-2!"];

  edge[style = solid,fontsize=11];
  "LeftFoot\nRightFoot":n -> "RightFoot\nRightHand":n [label = "3", penwidth = 1, color = "red"];
  "LeftFoot\nRightFoot":s -> "LeftFoot\nRightHand":s [label = "7", penwidth = 1, color = "red"];

}

命令:

代码语言:javascript
复制
dot -Kneato -Tpng input.gv > output.png

输出:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30916979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档