Ruby を使用して言語のフローチャート ジェネレーターをコーディングしようとしています。
さまざまなフローチャート要素のさまざまな図形を描画し、それらの図形にテキストを書き出すために使用できるライブラリがあるかどうかを知りたかったのです。
できれば、基本的な形状を描画するためのコードを書く必要がないことを本当に望んでいます。
誰かがそのライブラリの使用例を含むリファレンス ドキュメントを教えてもらえますか?
Graphvizで有向グラフまたは無向グラフとしてフローチャートを作成します。Graphviz には、グラフを簡単に生成できる言語dotがあります。ドット ファイルを生成し、それを Graphiviz で実行するだけで、イメージを取得できます。
graph {
A -- B -- C;
B -- D;
C -- D [constraint=false];
}
digraph {
A [label="start"];
B [label="eat"];
C [label="drink"];
D [label="be merry"];
A -> B -> C;
C -> D [constraint=false];
B -> D [ arrowhead=none, arrowtail=normal]; // reverse this edge
}
Graphviz では、ノードの形状などを制御できます。
主に、構築しているユーザーエージェントの機能によって制限されるようです。これが Web プロジェクトの場合、描画機能はブラウザーに依存します。Ruby はサーバー側で実行されているため、ドラッグ/ズームなどを可能にするために、少なくともいくつかの JavaScript が必要です。ベクター描画に使用されている JavaScript の例はたくさんあります (Google で「javascript グラフィックス ライブラリ」を参照してください)。ただし、すべてコーディングが必要です。これをエレガントに抽象化するライブラリは見たことがありません。
ImageMagick には、RMagick と呼ばれる Ruby バインディングがあります (リポジトリによっては、別の名前で呼ばれることもあります)。(リンク) 私自身は使用していませんが、あなたが探しているものを実行すると信じています。いくつかのコーディングを行う必要がありますが、それは次の行に沿っています
draw.rectangle(x1, y1, x2, y2)
draw.polygon(x1, y1,...,xN, yN)
簡単な答えは、(執筆時点では)あなたが望むものはほぼ確実に存在しなかったということです。ごめん!
Windowsベースの場合は、.NETスペースで製品を探します。ここで、何かが見つかると思います。あなたはおそらく本当のお金を払わなければならないでしょう。勇気があるなら、IronRubyを使って話せるかもしれないと思います。
MS以外の環境からは、Javaベースのソリューションを期待しています。すでに述べたように、Webの世界では、JavaScriptベースの何か、またはおそらくもっと可能性が高いのは、Flash(またはSilverlight?)の世界からの何かを期待することになるでしょう。
実際、Rubyにとどまり、リスクを気にしないのであれば、Silverlightが道のりかもしれません-DLRのものが実際に機能すると仮定します(ここでは経験がありません)。Rubyは、私が気に入っているのと同じように、その周りに最も成熟したGUI構造を持っていることはほとんどありません。
更新:これを書いた後(5年前に近づいています)、状況は少し改善されました。特定のRubyグラフ描画ライブラリについてはまだ知りませんが、ここ(Github)またはによってGraphviz のサポートが改善されています。単純なグラフの場合、Rubyから直接スクリプトを作成することは非常に可能であることがわかりました。gem install ruby-graphviz
私は完全に確信していますが、ルビーのカイロバインディングをチェックしてください。テキストのパンゴ。現在調査中で、このページにたどり着きました。