如何创建状态转换图?

如何创建状态转换图?

我正在使用 Ubuntu 11.04 上的 LibreOffice draw 绘制状态转换图。除了最终状态外,我几乎可以得到我需要的一切。通常我们使用两个圆圈嵌入用于显示状态转换图的最终状态。有人能帮我做吗?请告诉我是否有更好的工具用于在 Ubuntu 上绘制状态转换图。我看过 Dia,但它也不适用于绘制状态转换图的最终状态,就像

答案1

实际上,Dia 确实允许您添加结束状态。选择 UML 形状,然后将“初始/结束状态”形状拖到图表上。双击该形状时,您会看到一个按钮,上面写着“是最终的”。这让您可以定义状态是初始的还是最终的。

编辑:如果您不喜欢它们的外观,可以很容易地在 Dia 中创建自己的形状。它们只是 SVG 文件。

将以下内容保存为~/.dia/shapes/fsm_final_state.shape

<?xml version="1.0"?>

<shape xmlns="http://www.daa.com.au/~james/dia-shape-ns"
       xmlns:svg="http://www.w3.org/2000/svg">
  <name>Finite State Machine - Final State</name>
  <icon>fsm_final_state_icon.xpm</icon>
  <connections>
    <point x="0.0" y="2.5" />
    <point x="2.5" y="5.0" />
    <point x="5.0" y="2.5" />
    <point x="2.5" y="0.0" />
  </connections>
  <textbox x1="0.0" y1="0.0" x2="5.0" y2="5.0" />
  <svg:svg width="5.0" height="5.0">
    <svg:circle style="fill: default;" cx="2.5" cy="2.5" r="2.5" />
  </svg:svg>
  <svg:svg width="4.0" height="4.0">
    <svg:circle style="fill: default;" cx="2.5" cy="2.5" r="2.0" />
  </svg:svg>
</shape>

将以下内容保存为~/.dia/shapes/fsm_final_state_icon.xpm

/* XPM */
static char * fsm_final_state_icon_xpm[] = {
"16 16 14 1",
"   c None",
".  c #FFFFFF",
"+  c #FCFCFC",
"@  c #B6B6B6",
"#  c #545454",
"$  c #000000",
"%  c #101010",
"&  c #D8D8D8",
"*  c #121212",
"=  c #353535",
"-  c #A0A0A0",
";  c #EBEBEB",
">  c #040404",
",  c #9E9E9E",
"................",
"....+@#$%#@+....",
"...&*=-.;-=*&...",
"..&>,......,>&..",
".+*,........,*+.",
".@=..........=@.",
".#-..........-#.",
".%;..........;%.",
".%;..........;%.",
".#-..........-#.",
".@=..........=@.",
".+*,........,*+.",
"..&>,......,>&..",
"...&*=-.;-=*&...",
"....+@#$%#@+....",
"................"};

最后,将以下内容保存为 ~/.dia/sheets/Finite_State_Machine.sheet :

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<sheet xmlns="http://www.lysator.liu.se/~alla/dia/dia-sheet-ns">
<!--File: ~/.dia/sheets/Finite_State_Machine.sheet-->

<name>Finite State Machine</name>
<description>Finite state machine diagrams</description>
<contents>
<!--add shapes here-->
<object name="Finite State Machine - Final State">
<description>Final</description></object>

</contents></sheet>

当您重新启动 Dia 时,您应该有一个具有一种形状的“有限状态机”表:一个看起来不错的最终状态!

答案2

我建议你使用墨景 安装 inkscape要制作这样的图形,需要花一点时间来学习如何使用工具,但产品的图形质量会给予我们很大的回报。

答案3

我建议您使用 Dia 软件来绘制状态图或任何其他 UML 或流程图。它包含大量形状和简单的拖放功能。所以选择 dia。有关更多信息,请访问此链接

答案4

Lucidchart 是个不错的选择。有免费版本,可在任何合适的浏览器中使用。我知道他们的开发团队都在运行 Linux,所以我也在那里工作 :)

相关内容