首页 > 解决方案 > 是否有用于绘制力导向图的简单(-ish)算法?

问题描述

在此处输入图像描述

我正在尝试在 P5js 中编写一个小图形可视化器,但我找不到一个简单的(-ish)算法可以遵循。

我已经找到了使用 D3 的方法,并且我找到了一些密集的教科书片段(像这样),但我正在寻找两者之间的东西。

有人可以解释绘制图形的最简单算法(力导向或其他方式)或指出一个好的资源吗?

谢谢你的帮助!

标签: algorithmgraphp5.jsforce-layout

解决方案


我真的刚开始做类似的事情。

编码相当容易,您只需要考虑作用在每个节点上的 3 个单独的力,将它们加在一起,然后除以节点的质量即可得到每个节点的运动。

  1. 重力,向画布中心施加一个简单的力,这样节点就不会脱离框架

  2. Node-Node replusion,您可以使用库仑力(描述粒子 - 粒子排斥)或使用引力方程并将其反转

  3. 连接力,这有点棘手,将连接定义为 2 个节点以及它们之间的距离。当它们之间的实际距离与定义的距离不同时,在连接方向上加上一个力乘以定义的距离和实际距离之间的差值


推荐阅读