Plant UML 状态图中的状态是否可以相对于另一个状态定位?
Can states in a Plant UML state diagram be positioned relative to another state?
我制作了一个 plantuml 状态图,如下所示:
我想将 "MainActivity" 状态置于 "Idle" 状态的右侧,这样 [instruction] 和 [done] 的箭头最终水平。
我知道这可以用于注释和文本,但我还没有看到状态本身的任何语法。
这在 PlantUML 中可行吗?
作为参考,这是我的 PlantUML 脚本:
@startuml
skinparam state {
StartColor PaleGreen
EndColor Red
BackgroundColor Gold
BackgroundColor<<Junction>> GreenYellow
BorderColor Gray
FontName Consolas
}
[*] -> Creating
Creating --> Idle : initialised
Idle : wait here for instructions
Idle --> MainActivity : [instruction]
state MainActivity {
[*] --> DoFirstThing
DoFirstThing --> FirstThingSuccess : [OK]
DoFirstThing --> FirstThingFailed : [not OK]
FirstThingSuccess --> SecondThing
SecondThing --> SecondThingFailed
SecondThing --> SecondThingSuccess
SecondThingSuccess --> WritingReport
SecondThingFailed --> WritingReport
FirstThingFailed --> WritingReport
WritingReport --> [*]
}
MainActivity --> Idle : [done]
@enduml
是的。您可以通过将箭头插入箭头符号的破折号之间来定义箭头的方向,例如 "MainActivity -left-> Idle"(请参阅 PlantUML 参考指南中的第 7.5 节)。
以下代码:
plantuml
@startuml
skinparam state {
StartColor PaleGreen
EndColor Red
BackgroundColor Gold
BackgroundColor<<Junction>> GreenYellow
BorderColor Gray
FontName Consolas
}
[*] -> Creating
Creating --> Idle : initialised
Idle : wait here for instructions
Idle -left-> MainActivity : [instruction]
state MainActivity {
[*] --> DoFirstThing
DoFirstThing --> FirstThingSuccess : [OK]
DoFirstThing --> FirstThingFailed : [not OK]
FirstThingSuccess --> SecondThing
SecondThing --> SecondThingFailed
SecondThing --> SecondThingSuccess
SecondThingSuccess --> WritingReport
SecondThingFailed --> WritingReport
FirstThingFailed --> WritingReport
WritingReport --> [*]
}
MainActivity -left-> Idle : [done]
@enduml
给你这个图表:
(PS :您可以对 "Creating" 状态执行相同的操作以使其看起来更一致)
我制作了一个 plantuml 状态图,如下所示:
我想将 "MainActivity" 状态置于 "Idle" 状态的右侧,这样 [instruction] 和 [done] 的箭头最终水平。
我知道这可以用于注释和文本,但我还没有看到状态本身的任何语法。
这在 PlantUML 中可行吗?
作为参考,这是我的 PlantUML 脚本:
@startuml
skinparam state {
StartColor PaleGreen
EndColor Red
BackgroundColor Gold
BackgroundColor<<Junction>> GreenYellow
BorderColor Gray
FontName Consolas
}
[*] -> Creating
Creating --> Idle : initialised
Idle : wait here for instructions
Idle --> MainActivity : [instruction]
state MainActivity {
[*] --> DoFirstThing
DoFirstThing --> FirstThingSuccess : [OK]
DoFirstThing --> FirstThingFailed : [not OK]
FirstThingSuccess --> SecondThing
SecondThing --> SecondThingFailed
SecondThing --> SecondThingSuccess
SecondThingSuccess --> WritingReport
SecondThingFailed --> WritingReport
FirstThingFailed --> WritingReport
WritingReport --> [*]
}
MainActivity --> Idle : [done]
@enduml
是的。您可以通过将箭头插入箭头符号的破折号之间来定义箭头的方向,例如 "MainActivity -left-> Idle"(请参阅 PlantUML 参考指南中的第 7.5 节)。
以下代码:
plantuml
@startuml
skinparam state {
StartColor PaleGreen
EndColor Red
BackgroundColor Gold
BackgroundColor<<Junction>> GreenYellow
BorderColor Gray
FontName Consolas
}
[*] -> Creating
Creating --> Idle : initialised
Idle : wait here for instructions
Idle -left-> MainActivity : [instruction]
state MainActivity {
[*] --> DoFirstThing
DoFirstThing --> FirstThingSuccess : [OK]
DoFirstThing --> FirstThingFailed : [not OK]
FirstThingSuccess --> SecondThing
SecondThing --> SecondThingFailed
SecondThing --> SecondThingSuccess
SecondThingSuccess --> WritingReport
SecondThingFailed --> WritingReport
FirstThingFailed --> WritingReport
WritingReport --> [*]
}
MainActivity -left-> Idle : [done]
@enduml
给你这个图表:
(PS :您可以对 "Creating" 状态执行相同的操作以使其看起来更一致)