web-dev-qa-db-fra.com

Comment corriger le chemin de ligne PlantUML

J'ai créé ce diagramme en utilisant le code suivant. Mais comme vous pouvez le voir, les lignes allant de (Annuler la commande) et (Passer la commande) à (Éditeur) décident de prendre un chemin terriblement arrondi pour les obtenir, au lieu d'aller tout droit vers la droite puis de descendre vers l'éditeur. J'ai essayé d'utiliser des commandes de direction manuelles comme "-down" mais aucune d'entre elles ne semblait aider. Est-ce que quelqu'un sait comment réparer ceci?

Et voici mon code. J'apprécie toute aide. Je vous remercie.

@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
11
aSamWow

Il existe quelques astuces que vous pouvez essayer, répertoriées ci-dessous. La mise en page elle-même est effectuée par GraphViz (dot layouting iirc), et GraphViz le fait simplement parfois. La disposition des graphiques est un problème NP-complet, donc les algorithmes prennent généralement des raccourcis difficiles.

Solutions de contournement typiques que j'ai vues ou utilisées:

  • ajout de lignes cachées a -[hidden]- b
  • prolongeant la longueur d'une ligne a --- b (plus de tirets, ligne plus longue)
  • spécifiant la direction préférée des lignes (a -left- b)
  • échange d'association se termine (a -- bb -- a)
  • changer l'ordre des définitions (l'ordre fait importe ... parfois)
  • ajout de nœuds vides avec des couleurs d'arrière-plan/bordure définies sur Transparent

Donc, si vous voulez vraiment avoir une belle mise en page, vous devrez mettre un peu d'huile de coude, mais gardez à l'esprit que la mise en page sera toujours fragile - si vous ajoutez/supprimez des éléments, vous devrez peut-être la refaire.

12
Peter Uhnak

Essayez les options suggérées par @Peter Uhnak avec le type de ligne:

skinparam linetype polyline
skinparam linetype ortho

Donnez de meilleures options pour les lignes. Utiliser ortho --- (ici )

tu auras -

enter image description here

11
Nikhil

Si quelqu'un veut connaître une réponse plus spécifique, mettre probablement beaucoup plus inutile, voici ce que j'ai fait au final.

    order -down- publisher
    publisher -[hidden]up- order

donc pour une raison quelconque, l'ajout de la commande dupliquée dans les deux sens le résout.

10
aSamWow