我正在尝试开发一个层次树的视图,其中每个节点的权重是它实际拥有的子节点数量。叶节点的权重为1。
我想以一种方式排列这些项,使得可以通过显示根类别(没有父节点)来浏览更深入树形结构。单击节点会使视图重新绘制,只显示该节点的子节点。
棘手的部分是节点的像素大小应该与相邻节点的权重成比例。根据维基百科,这称为treemapping,我需要的是一种平铺算法,我试图自己弄清楚,但似乎比我预期的要复杂。
举个例子,Mac Os X上有一个名为GrandPerspective的程序,显示您HD的文件夹大小:
我想以一种方式排列这些项,使得可以通过显示根类别(没有父节点)来浏览更深入树形结构。单击节点会使视图重新绘制,只显示该节点的子节点。
棘手的部分是节点的像素大小应该与相邻节点的权重成比例。根据维基百科,这称为treemapping,我需要的是一种平铺算法,我试图自己弄清楚,但似乎比我预期的要复杂。
举个例子,Mac Os X上有一个名为GrandPerspective的程序,显示您HD的文件夹大小:
(来源: arstechnica.com)
我想以这种方式排列节点!(当然,大小与文件夹大小成比例)
有什么建议吗?
谢谢