在网络上进行最短路径算法时,我想生成一张网络图片。我想表示节点(圆圈),链接(线),遍历链接的成本(链接线中间的数字)和链接的容量(它代表的节点旁边的链接线上的数字)在图片里。是否有任何图书馆/软件可以帮助自动创建这张图片?
我可以在Visio或某些绘图应用程序中手动执行此操作,但我想在更改/调整网络时从代码生成它们。
答案 0 :(得分:7)
听起来像GraphViz的工作,它会从简短的文字说明文件中生成图表。我已经用它来生成连接的节点图,我相信应该可以根据需要添加链接标签。
答案 1 :(得分:4)
如果你正在使用python,Nodebox会绘制漂亮的图形。
答案 2 :(得分:1)
显示这样的网络的一个大问题是找出将节点放在显示屏上的位置。如果根据您的网络安排节点在逻辑上很简单,那么现成的产品可能会满足您的需求。
如果安排要复杂得多,你可能不得不接受一定数量的人工干预,以便与现成的东西一起使用,或者自己编写子弹并自行编程。
.NET是一种选择,一旦掌握了Graphics类,它就很容易使用,并且很快就可以实现这样的功能。但是,对于像这样的面向图形的东西,可能有比.NET更好的语言/平台。
更新:对于2D图形而言,.NET比我所知道的要好得多。关键是找到Bitmap类中可怜的慢GetPixel()和SetPixel()方法的快速解决方法。一旦您可以轻松快速地读取和写入单个像素,您就可以做任何您想要的程序员。
答案 3 :(得分:0)
你偶然看看R编程语言吗?我并不积极,但我相信你可以用图形制作图像。 r-project.org
答案 4 :(得分:-1)
这里有各种算法的可视化:Algorithmics Animation Workshop