Выравнивание сетки Graphviz - PullRequest
       46

Выравнивание сетки Graphviz

1 голос
/ 19 августа 2011

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

Например, если у меня сетка, состоящая из квадратов в 1 дюйм, я бы хотел, чтобы все координаты узла были кратны 72 (количество точек в дюйме, если я не ошибаюсь). Мне нравится иерархическое расположение точек, поэтому, если возможно, это инструмент, который я хотел бы использовать.

Я просмотрел список атрибутов элемента несколько раз и не понял, как это сделать.

Edit:

Причина, по которой я выбрал GraphViz, заключается в том, что он может выполнять макет, а затем возвращать эту информацию в виде текста. Другие инструменты, похоже, просто хотят отобразить график, но я хочу отобразить его в другом месте, и мне просто нужно получить информацию о макете.

1 Ответ

1 голос
/ 19 августа 2011

Я считаю, что модуль Graph :: Easy на Perl можно использовать для размещения точечных файлов в сетках.

http://bloodgate.com/perl/graph/manual/index.html

http://search.cpan.org/~tels/Graph-Easy/bin/graph-easy

Редактировать:

Я не уверен, что это ваш желаемый результат, но, играя с шириной столбца узлов, я могу получить:

+------------------+
|        A         |
+------------------+
  |             |
  |             |
  v             v
+------------++----+
|     A1     || A2 |
+------------++----+
  |      |
  |      |
  v      v
+-----++-----+
| A1B || A1A |
+-----++-----+

graph { flow: down; }
[ A ] {columns: 8;}
[ A ]  -> { start: south; end: north; } [ A1 ] 
[ A ]  -> { start: south; end: north; } [ A2 ] 
[ A1 ] -> { start: south; end: north;}  [ A1A ]
[ A1 ] -> { start: south; end: north;}  [ A1B ]

Также я считаю, что этоможно установить точное пространство в сетке, в котором находится узел.

...