專案場景:
專案場景:Echarts關係圖中(不是力圖)一個節點x,y是固定的,為了同一列能居中顯示,規定:當前列有奇數個元素新節點往下放,有偶數個節點時新節點往上放。
問題描述:
刪除中間節點會有空缺:
刪除前後:
解決方案:
限制:
- 平衡後: 下邊節點數>= 上邊節點數,且下邊比上邊最多多一個。
- 本列新增新節點後: 下邊節點數>= 上邊節點數,且下邊比上邊最多多一個。
解決方法:
- 刪除中心節
- 下側節點數 = 上側節點
刪除掉之後總數為偶數,下一個節點往上放,中心節點上所有節點往下移。上側比下側多一個節點。 - 上側節點數 > 下側節點
刪除掉之後總數為奇數,下一個節點往下放,中心節點下所有節點往上移。左右點相等。
- 下側節點數 = 上側節點
- 刪除上側節點
- 下側節點數 = 上側節點
刪除掉之後總數為偶數,下一個節點往上放,刪除節點上所有節點往下移。左側比右側多一個節點。 - 上側節點數 > 下側節點
刪除掉之後總數為奇數,下一個節點往下放,中心節點下所有節點往上移。左右點相等。
- 下側節點數 = 上側節點
- 刪除下側節點
- 下側節點數 = 上側節點
刪除掉之後總數為偶數,下一個節點往上放,刪除節點上所有節點往下移。左側比右側多一個節點。 - 上側節點數 > 下側節點
刪除掉之後總數為奇數,下一個節點往下放,中心節點下所有節點往上移。左右點相等。
- 下側節點數 = 上側節點
可以看到節點移動跟刪除節點的位置無關,淦!
- 當刪除節點個數為偶數時,刪除節點上部分向下移動
- 當節點個數為奇數數時,刪除節點下部分向上移動