2009-10-02 8 views
24

Je suis en train d'afficher des bords allant de droite à gauche (c.-à-arrière) à l'aide de points:droit à bords gauche à point (Graphviz)

C <- A -> B 

Le mieux que je pouvais faire était:

digraph { 
    a -> b; 
    c -> a [dir="back"]; 
    {rank=same;c a b} 
} 

.. ce qui est bien, sauf que je n'aime pas utiliser c -> a lorsque le bord est dirigé dans l'autre sens.

Donc je voulais partager cette solution (qui ne semblait pas être mentionnée sur SO) et vérifier si quelque chose me manque.

Voir: http://www.graphviz.org/doc/info/attrs.html#k:dirType

+0

Cela ne résout pas le problème que le rang des noeuds car le bord ac n'est toujours pas inversé par rapport au graphe, sauf si vous l'écrivez 'c -> a'. J'aimerais que l'on puisse écrire 'a <- c'. : / – Evi1M4chine

Répondre

32

Je n'ai pas alternative à votre utilisation de dir, mais je peux le faire un peu plus courte, si vous voulez un alignement horizontal, utilisez la propriété rankdir du graphique, pour forcer la direction de gauche à droite.

digraph { 
    rankdir=LR; 
    a->b; 
    c->a [dir="back"]; 
} 
4

Pour faire des bords pointent vers l'arrière par défaut:

digraph { 
    edge [dir="back"]; 
    a -> b; 
    c -> a; 
} 

Ensuite, remplacer la valeur par défaut pour pointer vers l'avant:

c -> d [dir="forward"]; 
Questions connexes