Как создать две параллельные линии? - PullRequest
0 голосов
/ 07 декабря 2011

Я хочу нарисовать две параллельные горизонтальные линии вверху. Как это сделать? Мой код здесь. Выходные строки имеют одинаковую высоту, поэтому она не работает.

digraph G {

    graph [center, rankdir=TB, bgcolor=black];
    edge [arrowsize=1, color=red, dir=none];

    node [penwidth=1, color=white, fontcolor=white, labelloc=b];

    BB1P1[shape=point, color=red, width=0.01];
    BB1P[shape=point, color=white, width=0.1];
    BB1PV[shape=point, color=red, width=0.01];
    BB1P2[shape=point, color=red, width=0.01];

    BB1P1 -> BB1P -> BB1PV -> BB1P2;

    BB2P1[shape=point, color=red, width=0.01];
    BB2PV[shape=point, color=red, width=0.01];
    BB2P[shape=point, color=white, width=0.1];
    BB2P2[shape=point, color=red, width=0.01];

    BB2P1 -> BB2PV -> BB2P -> BB2P2;

    { rank=same; BB1P1; BB1P; BB1PV; BB1P2 };
    { rank=same; BB2P1; BB2PV; BB2P; BB2P2 };

}

1 Ответ

2 голосов
/ 08 декабря 2011

На самом деле достаточно одного невидимого узла:

digraph G {
    graph [center, rankdir=TB, bgcolor=black];
    edge [arrowsize=1, color=red, dir=none];

    node [penwidth=1, color=red, fontcolor=white, labelloc=b, shape=point, width=0.01];

    {
        rank=same;
        BB1P1;
        BB1P[color=white, width=0.1];
        BB1PV;
        BB1P2;
    }

    {
        rank=same;
        BB2P1;
        BB2PV;
        BB2P[color=white, width=0.1];
        BB2P2;
    }

    BB1P1 -> BB1P -> BB1PV -> BB1P2;
    BB2P1 -> BB2PV -> BB2P -> BB2P2;
    BB1P1 -> BB2P1[style=invis]; 
}

Или, что еще проще, просто измените rankdir на LR:

digraph G {
    graph [center, rankdir=LR, bgcolor=black];
    edge [arrowsize=1, color=red, dir=none];

    node [penwidth=1, color=red, fontcolor=white, labelloc=b, shape=point, width=0.01];

    BB1P[color=white, width=0.1];
    BB2P[color=white, width=0.1];

    BB1P1 -> BB1P -> BB1PV -> BB1P2;
    BB2P1 -> BB2PV -> BB2P -> BB2P2;
}
...