Геометрия макета для древовидных структур / привлекательная компоновка узлов

У меня древовидная структура данных, и я хотел бы нарисовать ее на холсте SVG (используя jQuery SVG). Я хотел бы визуализировать узлы, распространяющиеся сверху вниз в привлекательном -пространственный способ.

В идеале мне нужен класс или функция, которым я могу передать представление дерева и получить обратно координаты X и Y каждого узла. К сожалению, мой поиск в Google был разочарован тысячами обращений к виджету графического интерфейса дерева списков, чего я не хотел.

В идеале это был бы какой-нибудь Javascript, но я мог бы также использовать некоторый Python (используемый на стороне сервера .) Я взглянул на этот материал Python на Github, но я действительно не могу понять его использование (или заставить его работать). Я также кратко рассмотрел ete2a1 , но он не был установлен должным образом, документация не доработана, и он, кажется, больше ориентирован на фактическую визуализацию деревьев в виде изображений, а не на выполнение геометрии.

Извините, если это расплывчатый вопрос, позвольте мне знаю, смогу ли я пояснить. По сути, у меня есть это:

Tree("Root",
    Tree("leaf 1",
        Tree("leaf 2",
            Tree("leaf 4"),
                Tree("leaf 5")), Tree("leaf 3",
                                    Tree("leaf 6"))))

, который будет отображать:

          Root
            |
          leaf 1
            |
            /\
           /  \
      leaf 2  leaf 3
        /\      \
       /  \      \
  leaf 4  leaf 5  leaf 6

(Ух, это может быть не совсем так, но вы поняли идею.)

Любые советы очень признательны!

7
задан Mikesname 5 June 2011 в 17:27
поделиться