用于计算树节点/绘图坐标的Java库或算法

时间:2010-11-08 15:04:36

标签: java tree drawing coordinate

我正在寻找一个能够在树中提供每个节点的精确坐标的库(任何树,而不仅仅是二叉树)。

假设我用以下符号定义树

(() (() (() () ())) 

有些图书馆给我这样的坐标:

[500 0]([200 50]() [600 50]([500 100]() [750 100]([600 150]() [700 150]() [800 150]())) 

或唯一表示树的任何其他表示法。

这种库可以实现节省空间的树木绘制,还可以解决节点和链接重叠的问题。例如,如果树是一个列表infact,我希望该库考虑到这一点,并在单个列或行中安排节点,以节省空间。

如果不存在任何相似之处,算法也会派上用场,前提是它可以相对容易地实现。

1 个答案:

答案 0 :(得分:0)

我认为Nested Set模型可能会对您有所帮助。

该算法相当简单,并且对于读取非常有效,尽管对树的更新稍微贵一些,因为节点的边界必须以级联方式更新。 Here is the algorithm implemented in SQL