5

事前のお詫びは、私が用語を誤用していることです、そして訂正はありがたいです。私は有向グラフに魅了されていますが、数学/計算機科学のバックグラウンドでそれらが実際に何であるかを知ることはできませ。便利な図を作成できるので、技術が好きです。

動的有向グラフをブラウザにレンダリングするWebアプリケーション機能を作成しようとしています。最近、使用したいcavasベースのxdotレンダラーであるCanvizを発見しました。

Canvizは素晴らしいですが、xdotファイルをレンダリングします。ファイルには、複雑なポジショニングロジックがすべて含まれているように見えます。

/* example xdot file */
digraph abstract {
    graph [size="6,6"];
    node [label="\N"];
    graph [bb="0,0,1250,612",
        _draw_="c 9 -#ffffffff C 9 -#ffffffff P 4 0 -1 0 612 1251 612 1251 -1 ",
        xdotversion="1.2"];
    S1 [pos="464,594", width="0.75", height="0.5", _draw_="c 9 -#000000ff e 464 594 27 18 ", _ldraw_="F 14.000000 11 -Times-Roman c 9 -#000000ff T 464 588 0 15 2 -S1 "];
    10 [pos="409,522", width="0.75", height="0.5", _draw_="c 9 -#000000ff e 409 522 27 18 ", _ldraw_="F 14.000000 11 -Times-Roman c 9 -#000000ff T 409 516 0 15 2 -10 "];

    S1 -> 10 [pos="e,421.43,538.27 451.52,577.66 444.49,568.46 435.57,556.78 427.71,546.5", _draw_="c 9 -#000000ff B 4 452 578 444 568 436 557 428 546 ", _hdraw_="S 5 -solid c 9 -#000000ff C 9 -#000000ff P 3 430 544 421 538 425 548 "];
}

アプリケーションで生成しているファイルはdotファイルであり、このポジショニングロジックは含まれていません

digraph g {

    ranksep=6
    node [
        fontsize = "16"
        shape = "rectangle"
        width =3
        height =.5
    ];
    edge [
    ];

    S1 -> 10
}    

dotのファイルxdotをCanvizで使用できるファイルに変換できるPHPライブラリを探しています。コマンドラインプログラムdotでこれを実行できることはわかっていますが、これは再配布可能なPHP Webアプリケーション用であり、依存関係としてのバイナリは避けたいと思います。

私の主な問題:dot単純な有向関係に基づいてファイルを生成していて、ブラウザーでエンドユーザーに視覚的なグラフを表示したい。サーバー上の特定のバイナリプログラムの存在に依存することなく、これを実行したいと思います。これに対する最善の解決策は、Canviz+PHPでxdotファイルを生成することだと思います。これができるPHPライブラリを探しています。しかし、私は他の解決策を受け入れる以上のことをしています。

4

1 に答える 1

1

Image_GraphVizを見たことがありますか?これは実際にはバイナリのラッパーにすぎませんが、見た目からすると、これより優れたものは見つからないと思います。これにより、少なくとも PHP スクリプトから直接コマンド ライン呼び出しを行う必要がなくなります。

 $dot_obj = new Image_GraphViz();
 $dot_obj -> load('path/to/graph.gv');
 $xdot = $dot_obj -> fetch('xdot');
于 2012-03-26T12:22:11.797 に答える