Отводить ребра от узлов в DOT?

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

Как вы можете видеть на изображении слева, ребра от узла 2 к узлам 4 и 6 идут прямо вверх по сторонам узлов и выглядят не очень хорошо, я надеялся, что макет отводит края от узлы (как мое изображение справа)

Как отвести ребра от узлов?

Пример графика:

введите здесь описание изображения

Мой файл DOT для приведенного выше графика выглядит следующим образом:

digraph g {
graph [
    center=true,
    nodesep=1.2,
    ranksep="1.2 equally",
    sep=6.2,
    splines=polyline
];
node [label="\N"];
0    [area=2,
    fixedsize=true,
    height=0.69444,
    label=0,
    margin=1.2,
    shape=box,
    width=1.3889];
1    [area=2,
    fixedsize=true,
    height=1.3889,
    label=1,
    margin=1.2,
    shape=box,
    width=1.3889];
0:s -> 1:n;
2    [area=2,
    fixedsize=true,
    height=1.3889,
    label=2,
    margin=1.2,
    shape=box,
    color="blue",
    width=1.3889];
0:s -> 2:n;
3    [area=2,
    fixedsize=true,
    height=0.69444,
    label=3,
    margin=1.2,
    shape=box,
    width=1.3889];
0:s -> 3:n;
4    [area=2,
    fixedsize=true,
    height=0.69444,
    label=4,
    margin=1.2,
    shape=box,
    color="red",
    width=1.3889];
1:s -> 4:n;
2:s -> 4:n;
6    [area=2,
    fixedsize=true,
    height=1.3889,
    label=6,
    margin=1.2,
    shape=box,
    color="red",
    width=1.3889];
2:s -> 6:n;
5    [area=2,
    fixedsize=true,
    height=0.69444,
    label=5,
    margin=1.2,
    shape=box,
    width=1.3889];
4:s -> 5:n;
4:s -> 6:n;
7    [area=2,
    fixedsize=true,
    height=0.69444,
    label=7,
    margin=1.2,
    shape=box,
    width=1.3889];
5:s -> 7:n;
6:s -> 7:n;
6:s -> 2:n;
7:s -> 7:n;
8    [area=2,
    fixedsize=true,
    height=0.69444,
    label=8,
    margin=1.2,
    shape=box,
    width=1.3889];
7:s -> 8:n;
}

person QAZ    schedule 07.06.2013    source источник


Ответы (1)


Мне удалось получить желаемое разделение между узлом и линией края с помощью шипов = сплайн, но это делает линии края извилистыми, а не прямыми.

graph [
    center=true,
    nodesep=1.2,
    ranksep="1.2 equally",
    sep=6.2,
    splines=spline
];

введите здесь описание изображения

person Handcraftsman    schedule 22.06.2013
comment
спасибо, принято как ответ, так как это единственный обходной путь. - person QAZ; 11.07.2013