У меня есть большой граф вызовов, который довольно легко можно выразить точкой, вот очень простой пример:
digraph
{
foo -> bar
foo -> baz
baz -> baz
}
Я хочу выложить это так, чтобы узлы «высокого уровня», такие как foo
будет вверху, и поток будет, как правило, направлен вниз. Я также хотел бы, чтобы узлы на одном уровне были выровнены по горизонтали там, где это разумно, например bar
и baz
.
Но поскольку графики вызовов в реальном мире в целом будут беспорядочными, я бы хотел, чтобы макет достаточно хорошо обрабатывать произвольные графики.
Я допущу компромиссы, не жаловавшись, и я не хочу создавать для себя много работы, настраивая это, мне нужен быстрый "достаточно хороший" надежный макет двигатель, который имеет тенденцию течь вниз.
Как мне express это?