2012-04-04 13 views
0

私はgraphvizライブラリの助けを借りてCでグラフを視覚化しようとしています。グラフは隣接行列によって与えられる。グラフが指示され、問題があります。私は行列と一緒に作業し、nとmの間にエッジを作成し続けますが、mとnの間のエッジもそこにあり、私は別のエッジを作成します。結果として、graphvizは2つのエッジを期待どおりに描画しますが、多数のエッジを持つグラフは読みにくいです。私は双方向の矢印で1つのエッジを作成したいが、それを正しく行う方法は分からない。 (愚かな考えが最初にグラフの説明を含むファイルを作成して(エッジの説明に追加する(dir = both))、後でそれを処理してグラフを描画します。が、私はそれを知らない)私はこのようなマトリックスで働いているCでgraphvizで両方向矢印を作成する方法は?

:。

for(i=0; i<n; i++) 
      nodes[i] = agnode(g, itoa(i+1, name)); // Agnode_t *nodes[100]; 
    for(i=0; i<n; i++) 
      for(j=0; j<n; j++) 
        if(matrix[i][j]) 
          agedge(g, nodes[i], nodes[j]); // add edges 

は、あなたの答えをありがとう!

P.S.私の悪い英語のためにすみません。

答えて

1

あなたは、私はあなたの最も内側のループの中で次のように行うことができると信じていたエッジ、上dir属性を設定する必要があります。

Agedge_t *e = agedge(g, nodes[i], nodes[j]); 
agsafeset(e, "dir", "both", ""); 
+0

はどうもありがとうございました!できます! – r3t

関連する問題