我的女儿们做了一个与井字游戏不同的游戏。当然,当我和他们一起玩的时候,我开始在我的脑袋里蛮力......
所以在午餐时间,我制作了一个快速的小Python脚本来“解决”游戏。我希望以图形方式查看结果,因此我生成了所有合法移动的点文件:
当我尝试使用dot
渲染它时,它需要永远,我会在几个小时后中止它。
如果我使用neato
或sfdp
等渲染它,则需要几秒或更短时间,但实际上无法读取布局:
sfdp -x -Tpng data.dot > data.png
neato -x -Tpng data.dot > data.png
我很高兴得到的图像是几百万像素。
我如何布置并渲染如此大的图形?我对非点建议持开放态度,比如可以进行布局的Python库。
添加:my Python script来解决游戏并生成点文件
答案 0 :(得分:43)
试试这个:
sfdp -x -Goverlap=scale -Tpng data.dot > data.png
-Goverlap
保留布局,但统一缩放,直到没有更多节点重叠。当你缩小时,我能够得到一个大约77MB的PNG。
答案 1 :(得分:8)
您仍然可以使用neato但修改.dot文件:[splines = true overlap = false]
您的文件应如下所示:
digraph luffarschack {
graph [splines=true overlap=false];
node [shape=none];
...here your nodes;
...here your edges;
}
如果您只是放入第二行“graph [splines = true overlap = false]”并且其他所有内容保持不变,它应该有效。
答案 2 :(得分:1)
答案 3 :(得分:1)
我在我的大图(svg)上发现默认值为-Kneato
的点太慢。我最终使用
dot -Ksfdp -ooutput.svg -Tsvg input.dot
input.dot
所在的地方
digraph {
graph [overlap=false];
a -> {b c d e f g}
b -> {c e g x f}
...
}