2012-04-04 174 views
0

我試圖用graphviz庫的形式在C中顯示圖形。圖由鄰接矩陣給出。該圖是有針對性的,並且存在問題。我使用矩陣並在n和m之間創建邊,然後繼續,但m和n之間的邊也存在,並創建另一個邊。因此,Graphviz按預期繪製兩條邊,但具有大量邊的圖非常難以閱讀。我想創造一個單一的邊緣,雙向箭頭,但不知道如何做對。 (有一個愚蠢的想法,首先創建一個帶有圖形描述的文件(添加到邊緣的描述[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 2012-04-05 03:07:45