d3力导向图的学习中遇到一个疑点和难点,查资料也解决不了,怎么办,有时候自己查完一个知识点以后,自己做的时候总会出问题,但是又具体不知道是哪里有问题
同学你的这种疑惑和问题我们很多同学都会有,其实就是对于知识点的理解没有到位,知其然不知其所以然,对于知识的理解不深刻,容易衍生出更多的问题。
绘制一个力导向图,需要了解一下新的知识点:
d3.forceSimulation()/d3.forceSimulation([nodes])新建一个力导向图,如果没有定义数组,可以为空,到后面可以通过simulation.nodes([nodes])将数组写入
d3.forceSimulation().force(),添加一个力
D3.js 中内置了几种经典的力模型
1.Centering
中心力可以使得节点最终布局是围绕着某个中心的。相当于某个中心点对所有的节点都有一个制约,不会让布局的中心偏离。
2.Collision
碰撞力为每个节点都设定一个圆形的碰撞区域,从而防止节点之间重叠。
关键参数:radius 碰撞半径
3.牵引力(Links)
牵引力的强度与节点之间的距离成正比,类似于弹簧力。
关键参数:distance。影响两个节点之间的最终距离。
4.N 体力(Many-Body)
Many-Body 力是作用于所有节点之间的,是全局的,任何两个节点之间都将受到此力的影响。(与 牵引力 Links 不同,Links 力仅仅会影响有连接关系的两个节点)
5.方向力(Positioning)
方向力分为 X 方向和 Y 方向,即将作用力限制在一个维度上( X 维度或者 Y 维度)
具体的内容同学可以参考一下https://blog.csdn.net/weixin_43363871/article/details/102649473,如果同学需要具体的demo以及课程和作业的辅导,可以联系我们客服老师咨询。