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

ruby-graphviz gemの使用を検討することをお勧めします。

于 2012-12-02T20:30:51.380 に答える
0

代わりに次のことを試してください。

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

これにより、stdout パイピング コマンド>がドットへの単純な引数に置き換えられ、ファイル自体を書き込むように指示されます。

于 2012-12-02T20:28:49.387 に答える