Добавление чуть более подробной информации к предыдущему ответу:
1) Ширина узла определяется несколькими свойствами: атрибут width определяет минимальную ширину;ширина метки или изображения в узле;атрибут margin для поля вокруг метки;количество периферийных устройств;и т. д. Если вы действительно хотите зафиксировать ширину, установите для атрибута «width» требуемое значение и установите для «fixedsize» значение 1. Как отмечалось выше, вы устанавливаете атрибуты с помощью функции agset, которая предполагает, что атрибут был ранее объявлен с использованиемфункция agnodeattr, для узлов.Или просто используйте agsafeset, который объединяет операции.
2) Если n - указатель узла, его позиция сохраняется как пара (x, y) в ND_coord (n).Если e является указателем ребра, значение ED_spl (e) указывает на структуру, содержащую массив структур, описывающих кубические B-сплайны.(Обычно есть только один.) Если bz = ED_spl (e) -> list [0], тогда * bz имеет поля для количества точек, точек и информации о том, есть ли у края стрелки на голове и/ или хвост.Это значение этих значений описано здесь
3) Чтобы удалить узел n из графа g, используйте agdelete (g, n);
4) Вызов agclose дляГрафик автоматически освободит все узлы и ребра.Если вы вызвали gvLayout, сначала вам нужно вызвать gvFreeLayout, чтобы освободить данные, выделенные для выполнения макета.
этот документ может оказаться полезным.