2017-04-18 62 views
0

我試圖動態放置不同的代謝路徑(節點遵循父節點中包含的預設佈局)。動態組合'預設'佈局

通常我會爲每個子節點定義位置,以免與父節點重疊。然而,圖形(包含請求節點的生成的json)是動態生成的,所以這不是一個選項。

有沒有一種方法可以實現這一點,因爲正在生成json時,缺少重新計算每個節點的位置。

如:請求糖酵解 - > TCA - >尿素

Current situation

Acceptable solution

回答

0

如果你想要做的事就像手冊,你可能不得不使用一些代碼,而不是隻需指定一個佈局。

let shiftPosition = (pos, delta) => ({ x: pos.x + delta.x, y: pos.y + delta.y }); 
let shiftNode = (node, delta) => shiftPosition(node.position(), delta); 
let findDelta = parent => ({ x: 100, y: 100 }); // determine yourself 

cy.nodes(':parent').forEach(parent => { 
    let delta = findDelta(parent); 

    parent.children().positions(node => shiftNode(node, delta)); 
}); 
+0

想盡辦法,謝謝你的反應! –