我需要在C#中绘制公司组织结构树(类似于家谱)。所有附属代码都已经准备好了。它是彩色的、互动的和花哨的。唯一的问题是实际决定放置每个节点的算法让我很苦恼。
目前,盒子大小为100x50,并且我有一个名为
该算法只需要创建一个具有相应x和y值的
这非常棘手。
基本上,该算法沿着公司结构进行递归,因此沿着树的左->右,然后是上->下。显然,如果两个节点重叠在一起,就会出现问题。
我可以想到几种可能产生这样结果的算法:
目前,盒子大小为100x50,并且我有一个名为
StaffNode
的类,表示特定x、y坐标处的员工。该算法只需要创建一个具有相应x和y值的
List<StaffNode>
。这非常棘手。
基本上,该算法沿着公司结构进行递归,因此沿着树的左->右,然后是上->下。显然,如果两个节点重叠在一起,就会出现问题。
我可以想到几种可能产生这样结果的算法:
*
o O
o o o o o O
o O O O O O
O
相比之下,像这样做会更好,因为树非常大,空间非常有限:
*
o O
o o o o o O
o O O O O O
O
您们中有没有人曾经画过这样的树形图?如果有,我相信您们也遇到了我所面临的许多障碍。您们有什么建议吗?到目前为止,我已经花了整整一天的时间在上面。