uml - DOT 格式的 UML 状态图中的子状态

标签 uml dot

我正在尝试使用 DOT 格式生成基本的 UML 状态图。这是我目前的文件:

digraph {
compound=true;
node [shape=Mrecord]
rankdir="LR"

subgraph cluster0
    {
    label = "D"
B [label = "B"]
C [label = "C"]
}
A [label = "A|entry / EnterA\nexit / ExitA"]

A -> B [   style="solid",label="X" ];
A -> C [   style="solid",label="X" ]; 
}

通过 Erdos graphing engine 运行它,它看起来很像我想要的,只是我不知道如何使 super 状态 D 具有圆角和水平线以及进入/退出条件,就像状态 A 那样。

有没有办法将这些东西添加到 DOT 子图中?

附: Graphviz 说“The record-based shape has largely been superseded and greatly generalized by HTML-like labels”,但是当我尝试这个时,大多数引擎给了我一个非常糟糕的图表,其中转换箭头甚至没有接近接触状态,这就是为什么我正在做“过时的”记录 -基于形状而不是 HTML。

最佳答案

子图可以具有 style=rounded 属性,所以我想这就是你想要的 (还添加了 html 标签作为奖励):

digraph {
  compound=true;
  node [shape=Mrecord]
  rankdir="LR"

  subgraph cluster0 {
    label = "D"
    style = rounded 
    B [label = "B"]
    C [label = "C"]
  }
  A [label = <<table cellborder="0" style="rounded">
        <tr><td>A</td></tr>
        <hr/>
        <tr><td>entry / EnterA<br/>exit / ExitA</td></tr>
        </table>> 
     margin=0 shape=none]
  A -> B [style="solid" label="X"];
  A -> C [style="solid" label="X"]; 
}

enter image description here

关于uml - DOT 格式的 UML 状态图中的子状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44080133/

相关文章:

c# - Web 应用程序的 UML 类图 MVC 模式

java - 这个 UML 类图的实现会是什么样子?

java - 构造函数中带有 super 的 UML 类图

doxygen - 从依赖图中排除特定标题

python - 如何在 Python 中解析 DOT 文件

mercurial - 将 `hg history` 的输出转换为点文件

java - 如何从java代码中绘制序列图

java - 软件开发中模型和图表之间的概念区别是什么

plot - 如何使用Graphviz绘制箭头指向的节点?

environment-variables - Doxygen for Windows 中 DOT 路径的环境变量