是否有用于绘制力导向图的简单(-ish)算法?
Is there a simple(-ish) algorithm for drawing force-directed graphs?
我正在尝试在 P5js 中编写一个小型图形可视化工具,但找不到可遵循的简单(-ish)算法。
我找到了用 D3 实现的方法,并且找到了一些密集的教科书片段(如 this),但我正在寻找介于两者之间的东西。
谁能解释绘制图形(力导向或其他)的最简单算法或为我指出一个好的资源?
感谢您的帮助!
我刚开始something similar。
编写代码相当容易,您只需考虑作用在每个节点上的 3 个独立的力,将它们加在一起并除以节点的质量即可得到每个节点的运动。
重力,将一个简单的力作用于 canvas 的中心,这样节点就不会脱离框架
Node-Node replusion,您可以使用库仑力(描述粒子-粒子排斥)或使用gravitational attraction equation并将其反转
连接力,这个有点棘手,定义一个连接为2个节点和它们之间的距离。当它们之间的实际距离与定义距离不同时,在连接方向上加一个力乘以定义和实际距离之间的差值
我正在尝试在 P5js 中编写一个小型图形可视化工具,但找不到可遵循的简单(-ish)算法。
我找到了用 D3 实现的方法,并且找到了一些密集的教科书片段(如 this),但我正在寻找介于两者之间的东西。
谁能解释绘制图形(力导向或其他)的最简单算法或为我指出一个好的资源?
感谢您的帮助!
我刚开始something similar。
编写代码相当容易,您只需考虑作用在每个节点上的 3 个独立的力,将它们加在一起并除以节点的质量即可得到每个节点的运动。
重力,将一个简单的力作用于 canvas 的中心,这样节点就不会脱离框架
Node-Node replusion,您可以使用库仑力(描述粒子-粒子排斥)或使用gravitational attraction equation并将其反转
连接力,这个有点棘手,定义一个连接为2个节点和它们之间的距离。当它们之间的实际距离与定义距离不同时,在连接方向上加一个力乘以定义和实际距离之间的差值