Алгоритм построения организационного дерева - PullRequest
3 голосов
/ 25 февраля 2011

Я реализую организационный граф дерева - сверху вниз или слева направо - в C # и ищу хороший алгоритм для рисования дерева. Любые рекомендации?

Спасибо

Обновление

Наконец-то у меня появилось время поработать над ним, поэтому я написал свою собственную библиотеку для хранения и отрисовки дерева, создав собственную панель, не уверенный, что я следовал определенному алгоритму, я просто написал свой собственный - обратно в ручку бумага + время:)

Я намереваюсь сделать его открытым кодом на codeplex, как только я закончу добавлять все функции, которые я хотел. Опубликует еще одно обновление, как только оно выйдет на codeplex.

Спасибо

Ответы [ 5 ]

2 голосов
/ 25 февраля 2011

Я думаю, что ключевое слово, которое вы ищете, это Алгоритмы на основе силы .

1 голос
/ 05 апреля 2011

Классная визуализация, которую вы можете использовать вместо рисования дерева - это Squarified Treemap. Это представление иерархической структуры данных, которая показывает относительные размеры конечных узлов при упаковке в прямоугольник. Поскольку он рисуется рекурсивно, два конечных узла будут отображаться разных размеров, если они находятся в поддеревьях разных размеров иерархии.

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

1 голос
/ 25 февраля 2011

Также возможно, если вы используете только стандартный Silverlight.Используйте ItemsControl (который имеет в качестве ContainerTemplate StackPanel, чтобы вы могли отображать элементы вертикально или горизонтально) в сочетании с HierarchicalDataTemplate.Способ отображения элементов, которые вы установили с помощью ItemTemplate, и он должен работать напрямую

0 голосов
/ 10 августа 2012

Это лучшая статья, которую я нашел на эту тему: Элемент управления рисованием дерева графиков для wpf

Имеется версия WPF и Silverlight.Он реализует алгоритм Джона К. Уокера II для позиционирования узлов и работает отлично.Мне все еще нужно работать с вращением, чтобы оно могло отображаться слева направо.В настоящее время только сверху вниз.

Более подробную информацию об алгоритме можно найти здесь: http://www.cs.unc.edu/techreports/89-034.pdf

0 голосов
/ 05 апреля 2011

Один из вариантов, который вы могли бы рассмотреть, - это просто использовать элемент управления 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...