Я пытаюсь использовать точку (версия 2.28.0), чтобы составить блок-схему моего исходного кода. Для этого я хотел бы, чтобы граф состоял из подграфов, где каждый из этих подграфов представляет исходный файл в кодовой базе. В верхней части каждого подграфа должно быть имя файла в виде узла визуально легко различимым образом (например, жирный белый текст на темно-синем фоне). Под узлом имени файла должны быть узлы, представляющие поток подпрограмм в этом файле в том порядке, в котором они вызываются.
Теперь моя проблема заключается в том, что я хотел бы, чтобы расстояние между «узлами имени файла» и «узлами рутины» было меньше, чем расстояние между отдельными «узлами рутины», плюс между ними не должно быть стрелки.
Я попытался использовать атрибут minlen для ребра, соединяющего «узел имени файла» с первым «обычным узлом», но когда я установил для него значение ниже 1,0, два узла вышли рядом друг с другом, а не сложены.
Есть ли способ сделать первые два узла ближе друг к другу, чем два других, но ориентированными сверху/снизу?
digraph "prog.c"
{
edge [fontname="FreeSans",fontsize="12",labelfontname="FreeSans",labelfontsize="10"];
node [fontname="FreeSans",fontsize="14",shape=record,height=0.2];
compound=true;
subgraph cluster_main {
Node1_0 [label="main.c", shape=folder, fontcolor="white", style=filled, fillcolor="#00008b"];
Node1_1 [label="routine1()"];
Node1_2 [label="routine2()"];
edge [color="transparent", minlen="0.5"]; // stacking not ok
// edge [color="transparent", minlen="1.0"]; // stacking ok
Node1_0 -> Node1_1 ;
edge [color="black", minlen="1.0"];
Node1_1 -> Node1_2 ;
}
}
Редактировать: я должен был закомментировать строку, ведущую к нежелательному результату, а не ту, которая ведет к желаемому результату (я планировал прикрепить два png для пояснения, но мне не разрешено делать это как новичку); Итак, вот код, который я действительно хотел бы изменить таким образом, чтобы первые два узла имели другое (меньшее) расстояние от каждого, чем последние два.
digraph "prog.c"
{
edge [fontname="FreeSans",fontsize="12",labelfontname="FreeSans",labelfontsize="10"];
node [fontname="FreeSans",fontsize="14",shape=record,height=0.2];
compound=true;
subgraph cluster_main {
Node1_0 [label="main.c", shape=folder, fontcolor="white", style=filled, fillcolor="#00008b"];
Node1_1 [label="routine1()"];
Node1_2 [label="routine2()"];
//edge [color="transparent", minlen="0.5"]; // stacking not ok
edge [color="transparent", minlen="1.0"]; // stacking ok
Node1_0 -> Node1_1 ;
edge [color="black", minlen="1.0"];
Node1_1 -> Node1_2 ;
}
}