Fruchterman-Reingold算法绘制有向力图
此实现的重点不是性能,而是尝试使用这种相对简单的算法并可视化其过程。
大意
绘制图形的想法只是简单地获取图形并以“令人愉悦”的方式将其显示在屏幕上,无论这意味着什么。 Fruchterman和Reingold处理此问题的方式是将顶点视为空间中的粒子,这些粒子对彼此施加排斥力,并对通过某个边缘连接的物体施加吸引力。
可视化
使用实现实时可视化。 以下是一些起始位置(随机)和结果位置的示例:
双K5
10个顶点的随机图。 [以p = 0.41生成,种子= -957442595]
20个顶点的随机图。 [以p = 0.15,种子= -173247684生成]
用法
执行
lein run
为了尝试其他图,您可能只需要更改的以下几行:
( def W 600 )
( def H 600 )
( def line-weight 3 )
(
1