shichuanpo / cytoscape.js-d3-force

d3-force for cytoscape
MIT License
23 stars 9 forks source link

锁定部分节点后全图布局时未锁定节点向同一个方向移动 #8

Closed Owilla closed 3 years ago

Owilla commented 4 years ago

你好!

我最终希望实现的效果是在原有图上添加节点,并在不改变其他节点位置的情况下仅对新增节点进行布局,目前我的做法是将原有元素锁定后再添加新节点进行布局。但是使用d3-force布局时,节点出现在大致正确的位置后会向某一个方向飘移,这个问题我基于你的demo也可以复现出来,直接点击Add nodes to random node就可以看到效果。在这样添加之后直接对所有元素进行布局,即Run layout on full graph,布局则会恢复正常。如果我把布局切换成cola,同样添加节点,则是符合我期望的效果。

期待你的回复,非常感谢!

shichuanpo commented 3 years ago

你好!

我最终希望实现的效果是在原有图上添加节点,并在不改变其他节点位置的情况下仅对新增节点进行布局,目前我的做法是将原有元素锁定后再添加新节点进行布局。但是使用d3-force布局时,节点出现在大致正确的位置后会向某一个方向飘移,这个问题我基于你的demo也可以复现出来,直接点击Add nodes to random node就可以看到效果。在这样添加之后直接对所有元素进行布局,即Run layout on full graph,布局则会恢复正常。如果我把布局切换成cola,同样添加节点,则是符合我期望的效果。

期待你的回复,非常感谢!

不好意思,现在才回复。 这个问题是因为加了forceCenter。 你可以这样做,只lock当前需要扩展的点,然后再放开它

Owilla commented 3 years ago

感谢回复。我后来也发现了这是forceCenter导致的,目前我的做法是直接注释掉forceCenter。