Мне нужно нарисовать дерево корпоративной структуры (вроде семейного дерева) на C #. Здесь есть весь дополнительный код. Он цветной, интерактивный и необычный. Единственная проблема заключается в том, что алгоритм, который фактически решает, где разместить каждый узел, доставляет мне много горя.
На данный момент коробки имеют размер 100x50, и у меня есть класс под названием StaffNode
, который представляет сотрудника в определенных координатах x, y.
Алгоритму просто нужно создать List
с соответствующими значениями 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
Кто-нибудь из вас должен был нарисовать такое дерево раньше? Если да, я уверен, что вы столкнулись со многими препятствиями, которые у меня есть. Какие-нибудь советы? Пока что потратил на это целый день.