次のコードを使用してこの図を作成しました。しかし、ご覧のとおり、(Cancel Order)と(Place Order)から(Publisher)までの行は、右にまっすぐに行ってからパブリッシャーに到達するのではなく、非常に丸いパスを使用してそれらを取得することを決定します。 「-down」のような手動の方向コマンドを使用してみましたが、どれも役に立たなかったようです。誰もこれを修正する方法を知っていますか?
そして、これが私のコードです。私はどんな助けにも感謝します。ありがとうございました。
@startUML EBook Use Case Diagram
left to right direction
Actor Customer as customer
Actor EBook as ebook
Actor Publisher as publisher
rectangle "Book Catalogue" {
together {
Actor "Book Database" as bookLog
(Retrieve Information) as getBook
customer -- getBook
getBook -- ebook
getBook -- bookLog
(Update Catalogue) as updateCatalogue
ebook -- updateCatalogue
updateCatalogue -- bookLog
}
together {
(Place Order) as order
customer -- order
order -- ebook
order--publisher
(Cancel Order) as cancelOrder
customer -- cancelOrder
cancelOrder -- ebook
cancelOrder--publisher
}
}
(Ship To EBook) as shipEBook
shipEBook -- publisher
(Ship To Customer) as shipCustomer
customer -- shipCustomer
ebook -- shipEBook
shipCustomer -- ebook
(Return to EBook) as returnCustomer
(Returnto Publisher) as returnPublisher
customer -- returnCustomer
returnCustomer -- ebook
ebook -- returnPublisher
returnPublisher -- publisher
@endUML
以下にリストされているいくつかのトリックを試すことができます。レイアウト自体はGraphViz(iircのドットレイアウト)によって実行され、GraphVizは単にこれを行うことがあります。グラフのレイアウトはNP完全な問題であるため、通常、アルゴリズムには厳しいショートカットが必要です。
私が見たり使用した典型的な回避策は次のとおりです。
a -[hidden]- b
a --- b
(より多くのダッシュ、より長い行)a -left- b
)a -- b
→b -- a
)したがって、本当に素敵なレイアウトが必要な場合は、エルボーグリスを入れる必要がありますが、レイアウトはまだ壊れやすいことに注意してください-アイテムを追加/削除する場合は、再度やり直す必要があります。
@Peter Uhnakが提案するオプションとlinetypeを試してください:
skinparam linetype polyline
skinparam linetype ortho
線のオプションを改善します。オルソの使用 ---(Here )
あなたが取得します-
誰かがもっと具体的なことを知りたいと思ったら、おそらくもっと役に立たない答えを入れてください、これが私が最後にしたことです。
order -down- publisher
publisher -[hidden]up- order
何らかの理由で、重複したコマンドを両方の方法で追加すると解決します。