Как избежать наложения края и узла при использовании graphviz? - PullRequest
3 голосов
/ 04 сентября 2010

В качестве заголовка я хочу нарисовать изображение формата файла ELF. Заголовок ELF имеет смещение таблицы заголовков программы и таблицы заголовков разделов, поэтому я хочу использовать указатель с двумя стрелками, чтобы указать на связь. Но края перекрывают узел (запись) даже после того, как у меня установлено перекрытие = ложь и сплайны = истина. У меня есть поиск некоторое время, но моя ситуация такова, что стрелки несколько указывают на части себя.

Ниже приведен файл точек, который я использую для создания файла png.

digraph g {
//margin="1"
overlap='scale'
graph [rankdir="LR"]

"ELF File" [
label="<f0> ELF Header\n e_shoff=0x118| <f1> Program Headers Table | <f2> .text | <f3> .data | <f4> .rodata| <f5> .comment | <f6> .shstrtab | <f8> .symtab | <f9> .rel.text | <f7> Section Table"
shape="record"
];

"ELF File":f0 -> "ELF File":f1 [label="e_phoffset"]
"ELF File":f0 -> "ELF File":f7 [label="e_shoff"]
}

1 Ответ

2 голосов
/ 28 мая 2011

Одним из возможных решений является использование «восточных» узловых портов на одном из ребер, чтобы этот ребро появилось на противоположной стороне записи. Вы делаете это, добавляя :e к имени узла. Например:

"ELF File":f0:e -> "ELF File":f7:e [label="e_shoff"]
...