echart關係圖平分節點刪除時自動平衡問題

啦啦嘿發表於2021-02-10

專案場景:

專案場景:Echarts關係圖中(不是力圖)一個節點x,y是固定的,為了同一列能居中顯示,規定:當前列有奇數個元素新節點往下放,有偶數個節點時新節點往上放

問題描述:

刪除中間節點會有空缺:
刪除前後:
刪除前在這裡插入圖片描述

解決方案:

限制:

  1. 平衡後: 下邊節點數>= 上邊節點數,且下邊比上邊最多多一個
  2. 本列新增新節點後: 下邊節點數>= 上邊節點數,且下邊比上邊最多多一個

解決方法

  • 刪除中心節
    • 下側節點數 = 上側節點
      刪除掉之後總數為偶數,下一個節點往上放,中心節點上所有節點往下移。上側比下側多一個節點。
    • 上側節點數 > 下側節點
      刪除掉之後總數為奇數,下一個節點往下放,中心節點下所有節點往上移。左右點相等。
  • 刪除上側節點
    • 下側節點數 = 上側節點
      刪除掉之後總數為偶數,下一個節點往上放,刪除節點上所有節點往下移。左側比右側多一個節點。
    • 上側節點數 > 下側節點
      刪除掉之後總數為奇數,下一個節點往下放,中心節點下所有節點往上移。左右點相等。
  • 刪除下側節點
    • 下側節點數 = 上側節點
      刪除掉之後總數為偶數,下一個節點往上放,刪除節點上所有節點往下移。左側比右側多一個節點。
    • 上側節點數 > 下側節點
      刪除掉之後總數為奇數,下一個節點往下放,中心節點下所有節點往上移。左右點相等。

可以看到節點移動跟刪除節點的位置無關,淦!

  1. 當刪除節點個數為偶數時,刪除節點上部分向下移動
  2. 當節點個數為奇數數時,刪除節點下部分向上移動

效果圖

在這裡插入圖片描述

相關文章