簡體   English   中英

d3強制定向布局-在不更改節點位置的情況下繪制鏈接

[英]d3 force directed layout - drawing links without changing the location of the nodes

我試圖以以下方式修改有向圖編輯器

  • 繪制鏈接時,它不會重新放置源節點和目標節點。 相反,將在節點的當前位置之間繪制鏈接。

  • 拖動周圍的現有節點(使用ctrl)時,它不會影響與其連接的任何附加節點的位置。 取而代之的是,所有其他節點將保持在原位,只有附着到被拖動節點的鏈接會根據拖動的距離更改其長度。

我嘗試提供此功能以強制使用linkDistance:

force.linkDistance(function(link) {
   var deltaX = d.target.x - d.source.x,
    deltaY = d.target.y - d.source.y,
    dist = Math.sqrt(deltaX * deltaX + deltaY * deltaY);
   return dist;
})

認為這將導致人們不得不假設無需在鏈接的每一側重新定位節點(遵循文檔 )。

但是,這導致了運行時錯誤,我無法解決。

關於該圖形的行為如何實現的任何想法?

通過將其設置為每個節點節點的屬性,例如{ id:123, fixed:true }聽起來您想使用fixed選項。

這是修改后的版本

固定節點根本不會被強制布局移動,因此,除非您明確為其指定初始位置,否則固定布局只會為它們分配一個隨機的位置。 還要注意的是,在所有節點都固定的情況下,沒有真正的理由使用力導向布局。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM