2012-02-24 5 views
0

私はそれを理解するために働いているコード用のコールツリーを生成しようとしています(私はそれを書いていませんでした)。私は手動で各関数とそれが(子として)呼び出す関数を入力できるようにしてツリーを構築したいと思います。しかし、何かを追加するたびにすべてを動かしなくても、何も重ならないように自動的にチャートを整理して配置したいと思っています。ツリー(ビジュアライゼーションツールとして)編集ソフトウェアに対する提案?

(initAll //root node 
    (//root node's children - functions it calls 
    (initDisplay()) //this child is a leaf 
    (initControlBar 
     (//initControlBar's children - functions it calls 
     (addButtons()) 
     (setUpControlBarEvents()) 
     ) 
    ) 
    (alertUserSystemReady()) 
) 
) 

私は(もちろん、グラフのサブセットである木)には、グラフツールになることができると思います:たとえば、ここではデータの種類の構造は、私は安っぽいLispesque形式で、中に入れたいと思いますしかし、私はグラフツールが自動的に物事を適切なレベルに置く能力を持っているとは思わない。このデータをツリーとして整理するのが好きなのは、何が起きているのかを視覚化するのに役立つ別個のレベルがあることです。

私はyEdとLucidChartを試しましたが、どちらも私にとってマニュアルすぎました。ツリーはかなり深くなるので、ツリーデータで自動的に再構成できるものが必要です。私もGraphvizを試しましたが、動作させることができませんでした(私はWindows上にあり、インストール後に何をすべきか分かりませんでした)。

グーグルはツリーエディタの最後には役に立たず、http://bioinfo.unice.fr/biodiv/Tree_editors.htmlのようなページを選ぶことができます。この場合、他の人の経験を使う方が良いと思いますので、私はここに来ました。

だから私の目標に近づけるツールは誰も知っていますか?ありがとう!

答えて

2

dot言語を使用してファイル内のグラフを表し、次にgraphvizを使用してグラフを表示します。 dotエンジン(graphvizで提供されているエンジンの1つ)は、記述したように階層グラフを描きます。ここでは例の図である。

http://www.graphviz.org/Gallery/directed/unix.png

あなたが作成する必要があるファイルの構文は、(上のグラフのために使用されるファイルから取られた)このようなものです:

digraph unix { 
    size="6,6"; 
    node [color=lightblue2, style=filled]; 
    "5th Edition" -> "6th Edition"; 
    "5th Edition" -> "PWB 1.0"; 
    "6th Edition" -> "LSX"; 
    "6th Edition" -> "1 BSD"; 
    "6th Edition" -> "Mini Unix"; 
    "6th Edition" -> "Wollongong"; 
    ... 
} 

同じファイルすることができます異なる種類のグラフに対して異なるエンジンに渡すことができますが、dotエンジンは、コード構造と依存関係によく使用されるエンジンです。

関連する問題