我正在创建一个家谱程序。我的问题是如何定位节点?最初我将根定位在屏幕的中心,如果它是一个完美的二叉树并且级别非常低,它就可以正常工作。然而,大多数情况下并非如此。这是一个示例树:-
A
B C
D E F I J
K L N O
如您所见,主要问题在于节点的位置。如果一个节点有很多子节点并且它的相邻节点也有很多子节点,它们往往会重叠。(主要问题)我在 Silverlight 中使用 Canvas 使用节点的绝对定位。如果您不是 Silverlight 开发人员,您可能不会关心 Silverlight 和 Canvas 部分。我只需要如何定位节点的逻辑。
通过知道树的总层数,可以很容易地计算出树的高度,但树的宽度是困扰我的问题。我如何计算树的宽度(画布的总宽度)
有人可以给我一些关于如何设置画布宽度以及哪些逻辑最适合节点定位的一般指导方针。
注意:-我不是要整个算法,这不是我的作业。我已经有了算法和数据库。我只需要节点定位部分的指南。
提前致谢 :)