【问题标题】:Organizational tree drawing algorithm组织树绘制算法
【发布时间】:2011-02-25 13:58:52
【问题描述】:

我正在用 C# 实现一个组织树图 - 从上到下或从左到右 - 并寻找一个好的算法来绘制树。有什么建议吗?

谢谢

更新

我终于有一些时间来研究它,所以最终编写了我自己的库来通过创建一个自定义面板来存储和绘制树,不确定我是否遵循特定的算法,我只是写了自己的 - 回到笔和纸+时间:)

添加完所有我想要的功能后,我打算在 codeplex 上将其开源。将在 codeplex 上发布另一个更新。

谢谢

【问题讨论】:

    标签: c# silverlight algorithm graph-algorithm


    【解决方案1】:

    我认为您要查找的关键字是Force-based algorithms

    【讨论】:

    • 谢谢,我去看看。
    【解决方案2】:

    如果您只使用标准 Silverlight,也可以。 结合 HierarchicalDataTemplate 使用 ItemsControl(它具有作为 ContainerTemplate 的 StackPanel,因此您可以垂直或水平显示项目)。 显示您使用 ItemTemplate 设置的项目的方式,它应该可以直接工作

    【讨论】:

      【解决方案3】:

      Squarified Treemap 是一个很酷的可视化工具,可以用来代替绘制树。这是一个分层数据结构的视图,它显示了叶子节点在打包成一个矩形时的相对大小。因为是递归绘制的,如果两个叶子节点位于层次结构的不同大小的子树中,就会被绘制成不同大小的。

      http://en.wikipedia.org/wiki/Treemapping

      【讨论】:

        【解决方案4】:

        您可能会考虑的一个选项是简单地使用 TreeView 控件和转换,使其按您希望的方式显示。

        http://forums.silverlight.net/forums/p/149065/334501.aspx

        老实说,我认为使用第三方组件会是一种更好的“算法”,而不是重新发明。如果您应该考虑,有几种产品可以为 SL 提供此功能:

        http://www.nwoods.com/components/silverlight-wpf/goxam-overview.htm http://www.mindfusion.eu/diagramlite.html http://www.syncfusion.com/products/user-interface-edition/silverlight/diagram http://www.yworks.com/en/products_yfilessilverlight_about.html

        【讨论】:

          【解决方案5】:

          这是我在这个主题上找到的最好的文章:A Graph Tree Drawing Control For wpf

          它有 WPF 和 Silverlight 版本。它实现了用于定位节点的 John Q. Walker II 算法并且运行良好。我仍然需要处理旋转,以便它可以从左到右显示。目前只是从上到下。

          您可以在此处找到有关该算法的更多信息:http://www.cs.unc.edu/techreports/89-034.pdf

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2022-01-19
            • 1970-01-01
            • 1970-01-01
            • 2011-04-16
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多