2013-05-22 4 views
4

Мне потребовалось некоторое время, чтобы сделать график ниже, как сейчас, и я почти доволен. Единственное, что меня беспокоит, это то, что связь между D и B должна быть выше всех узлов ради эстетики.Изменить расположение кромок от нижних до верхних узлов в Graphviz

Забавно, что поставка портов для края не производит впечатление dot, который просто заставляет кросс пересекаться с подключенными узлами.

У вас есть идея, как этого избежать?

My graph

digraph { 
    graph [splines=ortho, nodesep=0.2, fontname="DejaVu Sans", rankdir=LR] 
    node [shape=box, fontsize=8] 
    edge [arrowsize=0.5] 

    subgraph cluster { 
     style=invis; 
     A -> B -> C; 
     A -> B -> C; 
     A -> B -> C -> D; 
     D -> E; 
     D:nw -> B:ne; 
    } 
    { 
     D -> F -> { C; E }; 
    } 
} 

PS: Вам нужна последняя версия GraphViz для того, чтобы get orthogonal edges.

+1

+1: Ортогональные края являются новыми для меня. Выглядит хорошо, кроме проблемы, которую вы заметили. Я отмечаю, что в документации, на которую вы ссылаетесь, говорится: «В настоящее время маршрутизация не обрабатывает порты или, в точках, метки границ», которые могут быть причиной проблемы. Я думал, что вставка невидимого узла между D и B может помочь решить проблему, но я пробовал различные способы сделать это, и ни один из них не улучшил ситуацию. Я подумаю об этом подробнее. – Simon

ответ

3

Это может быть функция версии используемого вами двигателя. Я не уверен, какая версия точки используется в рабочей области GraphViz http://graphviz-dev.appspot.com/, но она запускает ваш проблемный коннектор сверху.

enter image description here