使用PlantUML我为我的文档创建了一个小状态图表:
@startuml
state Powered {
[*] -d-> Starting
Powered -r-> Starting : Some error
Starting -d-> Operational
}
[*] -d-> Powered : Power On
Powered -u-> [*] : Power Off
Powered -d-> Powered : Reset
@enduml
(顺便说一下:PlantUML是一个非常很好的工具,用于从嵌入式嵌入式标记文档(如asciidoc或reStructuredText)的文本描述创建图形输出)
正如您所看到的,图表有点草率
正如documentation所描述的那样,对箭头方向有一些影响,只需简写-left->
或-l->
而不仅仅-->
。
有没有办法影响如何和哪里箭头的绘制方式?我真的希望只绘制水平或垂直 直行。
答案 0 :(得分:3)
PlantUML并未设计为在施加多个方向时提供漂亮的直箭头。使用默认布局为我提供了最清晰,最可读的结果。
以下是具有相同含义的示例,但没有布局问题:
@startuml
state Powered {
[*] --> Starting
Starting --> Operational
}
[*] --> Powered : Power On
Powered --> [*] : Power Off
Powered --> Powered : Reset
Powered --> Powered : Fatal Error
@enduml
编辑:我还将您的Powered --> Starting : Fatal Error
转换更改为:Powered --> Powered : Fatal Error
,这更好地表达了来自Powered中的任何状态,致命错误事件将在Starting子状态重新启动。
或者两个陈述:
Powered --> Powered : Reset
Powered --> Powered : Fatal Error
可以合并在:
Powered --> Powered : Reset, Fatal Error
参见OMG UML 2.5 format specification第14.2.4.9页第329页
[<trigger> [‘,’ <trigger>]* [‘[‘ <guard>’]’] [‘/’ <behavior-expression>]]
答案 1 :(得分:1)
要为以后的读者回答原始问题:
为了只绘制水平或垂直直线,可以使用skinparam linetype ortho
。
为了使所有直线笔直(但不一定是水平或垂直),可以使用skinparam linetype polyline
。
(source)