如何重新排列 UML 状态图中的块
How to rearrange blocks in a UML state diagram
我刚刚创建了一个状态图,现在我正在为块的位置而苦苦挣扎。我的目标是让状态 1、2、4、5 处于“向下”行,状态 3 位于状态 1 的右侧。
查看我的 UML 代码和随附的当前(左)和想要的(右)设计的屏幕截图
UML代码:
@startuml diagramStackO
scale 400 width
[*] -down-> State1
State1 -down-> State2
State1 -right-> State3
State2 -up-> State3
State2 -down-> State4
State4 --> State5
State5 --> [*]
@enduml
屏幕截图(左:当前右:它应该是什么样子)
我的第一个建议是忽略它并继续前进......在 PlantUML 中调整图表以使其“恰到好处”,即使是小事也会占用大量时间。
然而,作为一个花费太多时间来使图表恰到好处的人,我想到了两件事。
使用ortho
第一个是只添加 skinparam linetype ortho
。这是最少的工作,但也带来最少的改进:
@startuml
skinparam linetype ortho
[*] -down-> State1
State1 -down-> State2
State1 -right-> State3
State2 -up-> State3
State2 -down-> State4
State4 --> State5
State5 --> [*]
@enduml
使用隐藏容器
另一个是添加一个隐藏的容器,我认为它 位 更有效,但不会 太多。
要获得您想要的垂直对齐方式,需要将状态组合在一起:
我们现在需要做的就是隐藏容器:
我用来实现这个效果的代码是:
@startuml
skinparam {
shadowing false
state {
BackgroundColor<<HIDDEN>> hidden
BorderColor<<HIDDEN>> hidden
}
}
state " " as _ <<HIDDEN>> {
state State1
state State2
state State4
state State5
}
[*] -down-> State1
State1 -down-> State2
State1 -right-> State3
State2 -right-> State3
State2 -down-> State4
State4 --> State5
State5 --> [*]
@enduml
我刚刚创建了一个状态图,现在我正在为块的位置而苦苦挣扎。我的目标是让状态 1、2、4、5 处于“向下”行,状态 3 位于状态 1 的右侧。
查看我的 UML 代码和随附的当前(左)和想要的(右)设计的屏幕截图
UML代码:
@startuml diagramStackO
scale 400 width
[*] -down-> State1
State1 -down-> State2
State1 -right-> State3
State2 -up-> State3
State2 -down-> State4
State4 --> State5
State5 --> [*]
@enduml
屏幕截图(左:当前右:它应该是什么样子)
我的第一个建议是忽略它并继续前进......在 PlantUML 中调整图表以使其“恰到好处”,即使是小事也会占用大量时间。
然而,作为一个花费太多时间来使图表恰到好处的人,我想到了两件事。
使用ortho
第一个是只添加 skinparam linetype ortho
。这是最少的工作,但也带来最少的改进:
@startuml
skinparam linetype ortho
[*] -down-> State1
State1 -down-> State2
State1 -right-> State3
State2 -up-> State3
State2 -down-> State4
State4 --> State5
State5 --> [*]
@enduml
使用隐藏容器
另一个是添加一个隐藏的容器,我认为它 位 更有效,但不会 太多。
要获得您想要的垂直对齐方式,需要将状态组合在一起:
我们现在需要做的就是隐藏容器:
我用来实现这个效果的代码是:
@startuml
skinparam {
shadowing false
state {
BackgroundColor<<HIDDEN>> hidden
BorderColor<<HIDDEN>> hidden
}
}
state " " as _ <<HIDDEN>> {
state State1
state State2
state State4
state State5
}
[*] -down-> State1
State1 -down-> State2
State1 -right-> State3
State2 -right-> State3
State2 -down-> State4
State4 --> State5
State5 --> [*]
@enduml