1

我正在制作一个小程序来为一个类渲染一些二叉树的图像。我希望程序自动为我制作一堆 .dot 和 .png 文件,但是除非我手动调用它,否则渲染 .png 的行不起作用。故障码:

@file_num = 0

data.each do |x|
    @tree.add(x)
    draw_frame(@tree, @filename, @file_num)
    @file_num += 1
end


(0...(data.length)).each do |x|
    `dot -Tpng #{@filename}#{x}.dot > #{x}.png`
end

当我走在树上时,它会生成 .dot 文件(使用并条框方法,我最终会从文件中生成 .gif 文件)。在这里,dot...使用反引号调用应该会生成 png,但事实并非如此。但是,如果我在命令行中运行完全相同的代码,它就可以正常工作。有任何想法吗?

4

2 回答 2

0

请尝试以下操作:

`dot -Tpng #{@filename}#{x}.dot -o#{x}.png`

这将 stdout 管道命令替换>为 dot 的普通参数,告诉它自己写入文件。

于 2012-12-02T20:28:49.387 回答
0

您可能需要考虑使用ruby​​-graphviz gem。

于 2012-12-02T20:30:51.380 回答