我正在尝试为图形生成布局信息,其中所有元素都必须在网格中布局。我希望所有坐标都是网格框大小的整数倍。
例如,如果我有一个由1英寸正方形组成的网格,我希望所有节点坐标都是72的倍数(一英寸的点数,如果我没有记错的话)。我喜欢dot的分层布局,所以如果可能的话,那就是我想要使用的工具。
我已多次查看element attribute list,但我还没弄清楚如何做到这一点。
修改
我选择GraphViz的原因是它可以执行布局,然后将该信息作为文本返回。其他工具似乎只想渲染图形,但我想将其渲染到其他地方,我只需要获取布局信息。
答案 0 :(得分:1)
我相信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 ]
此外,我相信可以在节点所在的网格上设置确切的空间。