我正在尝试借助 graphviz 库在 C 中可视化图形。图由邻接矩阵给出。图是有向的,有问题。我使用矩阵并在 n 和 m 之间创建一条边,然后继续,但 m 和 n 之间的边也在那里,我创建了另一条边。结果,graphviz 像预期的那样绘制了两条边,但是具有大量边的图很难阅读。我想创建一个带有双向箭头的单边,但不知道如何正确操作。(有一个愚蠢的想法是先创建一个带有图形描述的文件(添加到边缘的描述[dir = both]),然后再对其进行处理并绘制图形。我相信有更好的解决方案,但我不知道。)
我正在使用这样的矩阵:
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
谢谢您的回答!
PS对不起我的英语不好。