分区(Partition)
分区图,是层级布局(Hierarchy)的一种
该模块依赖一个层级布局(Hierarchy)结果,和一个画布区大小(size)。输出一个分区数据(Partition),分区数据(Partition)本质上是给层级布局(Hierarchy)写入了两个坐标,这两个坐标构成的区域即为该分区的可视化信息。详情见[基本数据](# 基本数据)。
基本数据
画布区大小(size)
1 | [400,600] |
节点数据(NodeData)
1 | { |
**层级布局(Hierarchy)**结果
1 | { |
分区数据(Partition)
其中x0,y0,x1,y1两个坐标点构成了一个区域。这个区域即为分区数据(Partition)的可视化信息。
1 | { |
执行逻辑
- 根据**分区数据(Partition)**的深度将画布高度均分,每一层节点所占的高度为
画布的高度/节点的总深度 - 根据给出的**画布区大小(size)**给根节点写入
x0,y0 x1,y1。根节点的宽度即为画布的宽度,高度即为画布的高度/**分区数据(Partition)**的深度。 - 将父节点的
x0,y0 x1,y1传入子节点 - 子节点根据父节点的
x0,y0 x1,y1数据,和自身value值计算每一个子节点的高度和宽度
根据当前节点的深度和每层节点的高度写入y0 y1数据
根据当前节点的value值和父节点的value值的比例计算出当前节点的x0 x1
核心代码
1 | // 写入size信息 |