Язык точечного графа - как автоматически создавать двунаправленные ребра?

Вот очень упрощенный пример моего точечного графа:

strict digraph graphName {
A->B
B->A
}

Это создает alt text

Вместо этого я хочу, чтобы между A и B было показано одно ребро, но с двойной стрелкой. Я знаю, как получить двойную стрелку в качестве глобальной опции:

strict digraph graphName {
  edge [dir="both"]
A->B
B->A
}

Но это выглядит очень некрасиво, и не все мои края должны быть двуглавыми.

alt text

Если я проделаю дополнительную обработку графа и сам обнаружу двойную ссылку и заменю два ребра одним ребром, все будет нормально. Но я бы предпочел не делать этот дополнительный шаг.

strict digraph graphName {
A->B [dir="both"]
}

alt text

Есть ли лучшие решения?

68
задан Dan Rosenstark 21 November 2019 в 23:24
поделиться

1 ответ

Как насчет 'focus = true'?:

strict digraph graphName {
concentrate=true
A->B
B->A
}

with concentrate=true

Из документации :

Если это правда, используйте концентраторы фронтов. Этот объединяет несколько ребер в одно ребро и заставляет частично параллельные края разделяют часть своего пути. Последний функция пока недоступна за пределами точки.

55
ответ дан 24 November 2019 в 14:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: