在VScode中使用graphviz创建总线拓扑

在VScode中使用graphviz创建总线拓扑,graph,graphviz,dot,Graph,Graphviz,Dot,我对graphviz不熟悉。我想画一张这样的图表 然而,这就是我得到的。使用以下代码 graph BUS_TOPOLOGY{ workstation1[shape=box pos = "100,50!"]; workstation2[shape=box]; workstation3[shape=box]; workstation4[shape=box]; workstation5[shape=box];

我对graphviz不熟悉。我想画一张这样的图表

然而,这就是我得到的。使用以下代码

  graph BUS_TOPOLOGY{
      workstation1[shape=box pos = "100,50!"];
      workstation2[shape=box];
      workstation3[shape=box];
      workstation4[shape=box];
      workstation5[shape=box];
      workstation6[shape=box];

      bus[shape=rectangle width=15]

      workstation1 -- bus --workstation4
      workstation2 -- bus --workstation5
      workstation3 -- bus --workstation6

  }


你的请求突破了极限,但“可行”。当您希望垂直边将节点连接到总线时,dot没有这样的指令。我不知道VScode,但这里有一个(部分)的解决方案,是直接。它使用html记录在总线上创建显式端口:

digraph structs {
  node [shape=rectangle]
  {
      rank=same
      ws1 ws2 ws3
  }
    node [shape=plaintext]
    bus [label=<
<TABLE BORDER="1" CELLBORDER="0" CELLSPACING="0" >
<TR>
<TD WIDTH="46" HEIGHT="12" PORT="p1"></TD>
<TD WIDTH="46" HEIGHT="12" PORT="p2"></TD>
<TD WIDTH="46" HEIGHT="12" PORT="p3"></TD>
<TD WIDTH="46" HEIGHT="12" PORT="p4"></TD>
<TD WIDTH="46" HEIGHT="12" PORT="p5"></TD>
<TD WIDTH="46" HEIGHT="12" PORT="p6"></TD>
<TD WIDTH="46" HEIGHT="12" PORT="p7"></TD>
</TR>
</TABLE>>];

  node [shape=rectangle]
  {
      rank=same
      ws4 ws5 ws6
  }
  edge [dir=none]
  ws1 -> bus:p1;
  bus:p2 -> ws4
  ws2 -> bus:p3;
  bus:p4 -> ws5
  ws3 -> bus:p5;
  bus:p6 -> ws6
}
有向图结构{
节点[形状=矩形]
{
等级=相同
ws1 ws2 ws3
}
节点[形状=纯文本]
公共汽车[标签]=<
>];
节点[形状=矩形]
{
等级=相同
ws4 ws5 ws6
}
边缘[dir=none]
ws1->总线:p1;
总线:p2->ws4
ws2->总线:p3;
总线:p4->ws5
ws3->总线:p5;
总线:p6->ws6
}
结果: