Graphviz Dot размещает узел внутри подграфа, хотя он был определен в другом месте

Я пытаюсь создать генератор сценариев точек для домашней задачи, все идет хорошо, за исключением того, что у меня есть эта проблема, когда в них помещаются некоторые узлы, которые не определены в подграфах. Например, следующий точечный скрипт:

digraph dg {
    compound=true;
    labelloc="t";
    label="test.cpp";
    Vehicle;
    Make;
    subgraph clusterFord {
        label="Ford"
        Ford[shape="none"][style="invis"][label=""];
        Mustang -> Vehicle [label="private"];
        Thunderbird -> Vehicle [label="private"];
    }
    Ford -> Make [label="public"][ltail ="clusterFord"];
    subgraph clusterChevrolet {
        label="Chevrolet"
        Chevrolet[shape="none"][style="invis"][label=""];
        Camero -> Vehicle [label="private"];
    }
    Chevrolet -> Make [label="public"][ltail ="clusterChevrolet"];
}

Создает это изображение:

Предполагается, что узел "Автомобиль" находится за пределами подграфа "Форд". Что мне здесь не хватает?

1 ответ

Это даст то, что вы хотите:

digraph dg {
    compound=true;
    labelloc="t";
    label="test.cpp";
    subgraph clusterFord {
        label="Ford"
        Ford[shape="none"][style="invis"][label=""];
        Mustang
        Thunderbird
    }
    subgraph clusterChevrolet {
        label="Chevrolet"
        Chevrolet[shape="none"][style="invis"][label=""];
        Camero
    }
    Ford -> Make [label="public"][ltail ="clusterFord"];
    Chevrolet -> Make [label="public"][ltail ="clusterChevrolet"];
    Mustang -> Vehicle [label="private"];
    Thunderbird -> Vehicle [label="private"];
    Camero -> Vehicle [label="private"];
}
Другие вопросы по тегам