分区(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信息 |