graphviz dot: как вставить стрелки от узла к центру стрелки

Я пытаюсь создать диаграммы для анализа MPLUS с помощью точки из пакета graphviz. Есть ли у кого-нибудь опыт использования точки для визуализации моделей структурных уравнений/моделей смеси скрытых классов? Особенно есть одна особенность, которую я не могу понять, как сделать красиво:

Мне нужны стрелки от узлов к центру другой стрелки, например

           C
           |
           |
           V
   A ------------> B

Я попытался вставить невидимый узел на пересечении стрелок. Это, однако, приводит к «треснувшей» стрелке A--->B, потому что точка представляет ее как две независимые стрелки. Возможно ли это даже с точкой?

Спасибо за предложения и помощь!

Грегор


person gregor    schedule 15.09.2010    source источник


Ответы (2)


Основываясь на ответе потратили, чтобы избавиться от перегиба:

digraph {
  ab[label="", fixedsize="false", width=0, height=0, shape=none];

  a -> ab[arrowhead=None];
  ab -> b;
  c -> ab;

  {rank=same; a; ab; b};
}

Вывод:

вывод графвиза

Другой возможностью было бы поиграть с атрибутом weight краев, чтобы выровнять края.

person marapet    schedule 08.01.2011

Следующее предотвращает "треснутые" стрелки. К сожалению, точка вводит излом между гранями a -> ab и ab->b. Не знаю алгоритма компоновки, который предотвращает это.

digraph {
  a;
  ab[label="", fixedsize="false", width=0, height=0, shape=none];
  b;
  c;

  a -> ab[arrowhead=None];
  ab -> b;
  c -> ab;
}

Вывод:

альтернативный текст

person spenthil    schedule 15.09.2010