gpt4 book ai didi

有效绘制树木的算法?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:25:33 26 4
gpt4 key购买 nike

我需要用 C# 绘制公司结构树(有点像家谱)。所有辅助代码都在那里。它是彩色的,互动的,花哨的。唯一的问题是实际决定每个节点放置位置的算法让我很烦恼。

目前,框的大小为 100x50,我有一个名为 StaffNode 的类它代表特定 x,y 坐标处的工作人员。

算法只需要创建一个List<StaffNode>使用适当的 x 和 y。

这非常棘手。

基本上,算法是沿着公司结构递归的,所以从左到右,然后从上到下沿着树。显然,如果两个节点相互重叠是不好的。

我能想到一些算法可能会产生这样的结果:

          *
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

你们中有人曾经画过这样的树吗?如果你有,我相信你已经遇到了我遇到的许多障碍。有小费吗?到目前为止,我已经花了一整天的时间。

最佳答案

有很多绘制树的好算法,每一种都展示了树的一些不同属性。如果你想炫耀层次结构,有this code for WPF that draws hierarchies .有关如何绘制图形和树的更一般性讨论,请考虑查看 these lecture slides on the Reingold-Tilden algorithm ,在理论和实践上实现起来相对简单,运行速度也很快。还有 these excellent slides覆盖类似的 Material 。

希望这对您有所帮助!

关于有效绘制树木的算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8289518/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com