Coffman-Graham Layering Graph Draw分层图布局展示工具
分层图布局的利器coffman-graham-layering-graph-draw
,挺适合你拿来快速试算法或者展示流程图。它用的是 Coffman-Graham 分层算法,图层清晰、结构美观,还顺带优化了交叉点,图看起来舒服多了。你只要把图文件路径丢进去,命令一跑,图就出来了,连手都不用多动。
直接在 Replit 上就能用,main.jar
打包好了,省得你自己折腾依赖,命令如下:
kotlin -classpath main.jar MainKt "examples/flow-from-lesson"
输出的是两张图:一张原始的 Coffman-Graham 布局图,一张是优化过交叉点后的图。看对比图的时候,体会一下“少一个交叉点,图就清爽一大截”。
算法实现集中在几个关键文件里,建议你可以翻翻:
CoffmanGrahamLayeringAlgorithm.kt
:主算法逻辑IntersectionOptimizer.kt
:交叉点优化AdjacencyMatrix.kt
:邻接矩阵ReadGraphml.kt
:图数据读取
如果你图是从其他格式来的,比如graphml
,直接用内置的ReadGraphml
就能读,挺省事的。而且examples
文件夹里有现成的图例,没时间建图可以直接跑。
图结构这块你要再深入,可以顺带看看这篇 基于邻接矩阵的图数据结构实现,里面讲得蛮系统的。
如果你正在做流程图、任务调度图、数据流之类的东西,可以考虑把这个算法套进自己的工具里。
19.53KB
文件大小:
评论区