Как создать диаграмму перехода состояния?

Я рисую диаграмму перехода состояния, используя LibreOffice draw на Ubuntu 11.04. Я могу получить почти все, что мне нужно, кроме последнего состояния. Обычно мы используем два круга , встроенные в , для отображения конечного состояния диаграммы перехода состояния. Может ли кто-нибудь помочь мне сделать это? Пожалуйста, дайте мне знать, если есть какие-либо лучшие инструменты для рисования диаграмм перехода состояний на Ubuntu. Я посмотрел на Dia, но также не полезно рисовать конечное состояние диаграммы перехода состояния, как в this .

5
задан 9 October 2011 в 05:54

6 ответов

Фактически Dia позволяет вам добавлять конечное состояние. Выберите формы UML, затем перетащите форму «начальное / конечное состояние» на диаграмму. Когда вы дважды щелкните по фигуре, вы увидите кнопку с надписью «Is final». Это позволяет определить, является ли состояние начальным или окончательным.

EDIT: Если вам не нравится, как это выглядит, довольно легко создать свои собственные фигуры в Dia.

Сохраните следующее как ~/.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 у вас должен быть лист «Конечный автомат» с одной формой: достойное выглядящее окончательное состояние !

4
ответ дан 25 May 2018 в 18:23
  • 1
    Спасибо. Однако, кажется, что начальное и конечное состояния выглядят не так хорошо, как ru.wikipedia.org/wiki/File%3aDFAexample.svg Пожалуйста, дайте мне знать, если вы знаете какие-либо другие лучшие инструменты. – samarasa 9 October 2011 в 05:53
  • 2
    Отредактировал мой ответ на примере того, как создавать свои собственные фигуры в Dia. ;-) – erturne 9 October 2011 в 06:18

Фактически Dia позволяет вам добавить конечное состояние. Выберите формы UML, затем перетащите форму «начальное / конечное состояние» на диаграмму. Когда вы дважды щелкните по фигуре, вы увидите кнопку с надписью «Is final». Это позволяет определить, является ли состояние начальным или окончательным.

EDIT: Если вам не нравится, как это выглядит, довольно легко создать свои собственные фигуры в 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 у вас должен быть лист «Конечный автомат» с одной формой: достойное перспективное конечное состояние !

4
ответ дан 7 August 2018 в 20:48

Я предлагаю вам использовать inkscape для создания такой графики, потребуется немного времени, чтобы узнать, как использовать инструменты, но это хорошо вознаграждается графическим качеством продукта.

3
ответ дан 25 May 2018 в 18:23

Я предлагаю вам использовать программное обеспечение Dia для диаграммы состояния или любых других диаграмм UML или потоков. Он содержит количество фигур и удобства для перетаскивания. Так что идите на dia. Для получения дополнительной информации посетите эту ссылку.

2
ответ дан 25 May 2018 в 18:23

Lucidchart - хороший вариант. Бесплатная версия доступна и работает в любом приличном браузере. Я знаю, что там команда разработчиков работает под управлением Linux, так что это потому, что я там работаю:)

1
ответ дан 25 May 2018 в 18:23

Lucidchart - хороший вариант. Бесплатная версия доступна и работает в любом приличном браузере. Я знаю, что там команда разработчиков работает под Linux, так что это потому, что я там работаю:)

1
ответ дан 25 July 2018 в 21:13

Другие вопросы по тегам:

Похожие вопросы: