我正在尝试在 graphviz 库的帮助下用 C 语言可视化图形。图由邻接矩阵给出。图是有向的,有问题。我使用矩阵并在 n 和 m 之间创建一条边,然后继续,但 m 和 n 之间的边也在那里,我创建了另一条边。结果,graphviz 正如预期的那样绘制了两条边,但是具有大量边的图非常难以阅读。我想创建一 strip 有双向箭头的单边,但不知道如何正确执行。 (有一个愚蠢的想法,首先创建一个包含图形描述的文件(添加到边缘的描述[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
感谢您的回答!
附注请原谅我的英语不好。
最佳答案
您需要在边缘设置 dir
属性,我相信您可以在最里面的循环中这样做:
Agedge_t *e = agedge(g, nodes[i], nodes[j]);
agsafeset(e, "dir", "both", "");
关于c - 如何在 C 中使用 graphviz 创建双向箭头?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10017349/