hb.*_*hb. 14 c# optimization performance graph-layout
我有一个对象列表,我需要组织为美学图.我目前的方法涉及IronPython和遗传算法,但这需要太长时间.
我一直在阅读Graphviz,QuickGraph和Graph#,但我不需要可视化部分 - 我已经有一个应用程序将显示给定x/y坐标的节点.有人告诉我,Sugiyama算法和基于力的算法族都倾向于输出令人愉悦的图形,但我似乎找不到一个.NET库来输出坐标而不是图像而没有一些非常严重的源代码黑客攻击.
任何人都可以推荐库,算法等吗?
Eri*_*ith 23
有许多选项,各种优点和缺点 - 你可能想要筛选这个软件列表,或多或少,你正在寻找什么.
过去,寻找开源解决方案很困难,但曾经商业许可的MSAGL现在似乎是开源的.
Graph#和QuickGraph之间的区别在于后者提供了图遍历和操作原语,但没有提供任何布局算法.Graph#拥有所有可用的源代码,从我(简要)看到的,在布局引擎和绘图实现之间有一个巧妙的分离.
Graphviz是用纯C/C++编写的,并且是相当单一的,将输入描述图形的文本文件作为输入,并生成各种类型的输出,包括矢量和基于栅格的输出.它不适合作为插件布局引擎,但可以通过shelling out并提供必需的输入文件和解析输出来使用.虽然不是很干净的解决方案.
还有一种叫做OGDF的东西.虽然它完全用C++编写,但它被设计用作布局引擎库,并且具有结构良好的接口.它支持各种布局算法,包括优化的Sugiyama,如果这是你感兴趣的话.
如果你有兴趣在Sugiyama上实现一个优化的变体,你总是可以使用算法的简洁描述自己动手:)
但最终,您可能应该决定在对库做出决定之前要使用的布局类型.
Microsoft Research 有一个自动图形布局引擎,可以帮助您完成这项工作。
您可以在此处阅读更多相关信息:
http://research.microsoft.com/en-us/downloads/f1303e46-965f-401a-87c3-34e1331d32c5/