Как принудительно расположить ребра в graphviz?

StackOverflow https://stackoverflow.com/questions/1477532

  •  16-09-2019
  •  | 
  •  

Вопрос

У меня возникли проблемы с перекрывающимися друг на друга ребрами.В моем предыдущий вопрос о том, как заставить узлы находиться в одном столбце, выяснил, как принудительно объединить узлы в один столбец, но это приводит к появлению некоторых других проблем.

digraph exmp {
  A -> B -> C -> D -> E
  C -> F [constraint=false]
  A -> C [style="dotted", constraint=false]
  A -> D [style="dotted",  constraint=false]
  B -> D [constraint=false]
  D -> A [style="dashed", constraint=false]
  C -> A [style="dashed", constraint=false]
  E -> F [style="invis"] 
  F -> G
  E -> C [constraint="false"]
}

Рендерит для:

альтернативный текст http://img98.imageshack.us/img98/8324/wrong2.gif

Моя проблема в том, что ребра из E -> C и C -> F начинаются / заканчиваются в одной и той же точке узла C, а все пунктирные ребра находятся на правой стороне узлов.

Как я мог бы указать определенным ребрам переходить на правую сторону узла?

Это было полезно?

Решение

После сообщения в списке рассылки graphviz я обнаружил, что, по крайней мере, возможно устранить проблему перекрытия E -> C и C -> F.

Самое простое решение заключается в использовании точки компаса порт:

C:e -> F [constraint=false]

-- Emden

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top