Как нарисовать древовидную структуру? (Двумерный алгоритм рекурсии дерева распределения пространства?)

У меня есть произвольная древовидная структура узлов. Я хочу нарисовать это дерево, чтобы предоставить пользователям визуальное представление. Мне нужно пройтись по дереву и для каждого узла добавить графический элемент в список, а затем просто нарисовать список элементов после завершения рекурсии дерева. Рекурсия и рисование элементов, конечно, тривиальны - что немного сложнее, так это как расположить графические узлы, чтобы они не перекрывались с другими ветвями.

Я использую Android, но это не важно - я ищу подход, возможно, алгоритм, который может поддерживать изображение 2D-пространства при его прохождении по дереву, чтобы он просто назначал наиболее подходящие координаты для каждого узла как это проходит.

Есть идеи?

Обновление

Это статья с лучшим и наиболее полным алгоритмом.

6
задан flesh 20 September 2010 в 23:14
поделиться