2013-02-19 4 views
3

Я использую GraphViz для определения местоположения элементов управления в своем приложении C#.GraphViz set page width

Но я не могу дать graphViz-точечному генератору ширину вывода.

Это те параметры при файла точек, что им с помощью

Digraph x { 
    autosize=false; 
    size="25.7,8.3!"; 
    resolution=100; 
    node [shape=rect]; 
    (edges definitions comes here) 
    ... 

Но, кажется, не имеют никакого влияния на сгенерированной незашифрованном файле.

Я пропустил что-то, чтобы установить ширину страницы?

С уважением

ответ

6

Я добавил a -> b в вашем примере. Вот незашифрованная выход я получаю:

digraph x { 
    graph [autosize=false, size="25.7,8.3!", resolution=100]; 
    node [label="\N", shape=rect]; 
    graph [bb="0,0,54,108"]; 
    a [pos="27,90", width=0.75, height=0.5]; 
    b [pos="27,18", width=0.75, height=0.5]; 
    a -> b [pos="e,27,36.104 27,71.697 27,63.983 27,54.712 27,46.112"]; 
} 

Как вы можете видеть, size и resolution атрибуты включены в вывод.

Вы можете изменить значение size и resolution, это не будет ничего, кроме этих атрибутов в незашифрованном выходе изменится. Позиции всех узлов и ребер равны относительной в рамку (bb) на графике.

Однако, если вы решите, например, для вывода PNG, Graphviz будет использовать эту информацию, чтобы масштабировать прямоугольник в соответствии с вашими size и resolution атрибутов и рассчитать конечный размер изображения.

В этом примере результирующий png будет 444 на 831 пиксель (8,3 дюйма с разрешением 100 точек на дюйм с результатом 830 пикселей, пиксель сверху, вероятно, связан с ошибкой округления).

Вы можете найти более подробные примеры об атрибуте size и результирующем размере изображения в this answer.