首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PlantUML:控制箭头形状和方向

PlantUML:控制箭头形状和方向
EN

Stack Overflow用户
提问于 2016-06-08 12:25:39
回答 2查看 17.3K关注 0票数 5

使用PlantUML,我为文档创建了一个小的状态图:

代码语言:javascript
运行
复制
@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)创建图形输出)

这就是将给定的状态图呈现给:

如你所见,图表绘制得有点草率。

  • “电源关闭”过渡箭头不是直的
  • 交换初始/结束状态。
  • 从“电源”到“启动”的箭头看上去像是与“断电”过渡有某种联系
  • “启动”和“操作”状态不对齐。

正如文档所描述的,通过编写-left->-l-> (而不仅仅是--> ),您对箭头方向有一定的影响。

是否有一种方法可以影响如何绘制箭头?我非常希望只绘制水平垂直直线

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-06-21 11:58:04

PlantUML的设计并不是为了在施加许多方向时提供很好的直箭头。使用默认布局为我提供了最干净和最易读的结果。

这里有一个含义相同的示例,但没有布局问题:

代码语言:javascript
运行
复制
@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,它更好地表示,从供电范围内的任何状态来看,一个致命的错误事件将在启动子状态重新启动。

另外,这两项声明是:

代码语言:javascript
运行
复制
Powered --> Powered : Reset
Powered --> Powered : Fatal Error

可合并为:

代码语言:javascript
运行
复制
Powered --> Powered : Reset, Fatal Error

OMG UML 2.5格式规范第14.2.4.9页第329页

代码语言:javascript
运行
复制
[<trigger> [‘,’ <trigger>]* [‘[‘ <guard>’]’] [‘/’ <behavior-expression>]]
票数 5
EN

Stack Overflow用户

发布于 2019-11-15 12:30:58

为将来的读者解答原来的问题:

为了只绘制水平或垂直直线,可以使用skinparam linetype ortho**.**

为了使所有的直线(但不一定是水平的或垂直的),您可以使用skinparam linetype polyline

(来源)

票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37702453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档