Я создаю программу семейного древа.Мой вопрос, как мне расположить узлы?Первоначально я разместил корень в центре моего экрана, и он отлично работает, если это идеальное двоичное дерево и уровни очень малы.Однако это не так часто.Это пример дерева: -
A
B C
D E F I J
K L N O
Как видите, основная проблема связана с расположением узлов.Если у узла много дочерних узлов, а у соседнего узла также много дочерних, они имеют тенденцию к перекрытию (ОСНОВНАЯ ПРОБЛЕМА) Я использую абсолютное позиционирование узла с использованием Canvas в Silverlight.Вы можете не беспокоиться о части Silverlight и Canvas, если вы не являетесь разработчиком Silverlight.Мне просто нужна логика того, как расположить узлы.
Высоту дерева можно довольно легко вычислить, зная общее количество уровней дерева, но меня беспокоит ширина дерева.Как я могу вычислить ширину дерева (общую ширину холста)
Может кто-нибудь дать мне некоторые общие рекомендации относительно того, как установить ширину холста и какая логика будет работать идеально для позиционирования узлов.
ПРИМЕЧАНИЕ: - Я не прошу весь алгоритм, и это не моя домашняя работа.У меня уже есть алгоритм и база данных.Мне просто нужно руководство для позиционирующей части узла.
Заранее спасибо:)