Вопрос

Итак, я работаю над проектом, который в конечном итоге создаст своего рода блок-схему с использованием API Flickr.Вы предоставите исходный тег, и программа будет использовать этот исходный тег для поиска других связанных изображений Flickr, имеющих общие теги...

У меня все внутренние компоненты работают, но я озадачен форматированием.Вот скрин того, как бы я хотел, чтобы это выглядело...

Cool Screenie

Вот мой вопрос.Есть ли хороший способ подобрать расстояние между каждой веткой?Под этим подразумевается, что я хотел бы иметь функцию, в которой я мог бы просто создать новый узел (или «ветвь») и указать, к какому существующему узлу я хотел бы его присоединить.Это все хорошо, но мне нужно иметь возможность автоматически и разумно размещать новый узел на странице, чтобы он не перекрывал существующие строки или узлы.Я думаю, это скорее общий вопрос программирования, как если бы я знал процесс, я мог бы его закодировать, но для тех, кому интересно, я делаю это в Javascript/HTML/CSS для стилизации и, возможно, в PHP для вызовов Flickr.

Не стесняйтесь задавать любые вопросы, чтобы прояснить мою бессвязность.

Это было полезно?

Решение

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

Реализация его на Javascript/PHP оставлена ​​читателю в качестве упражнения.

Альтернативой является использование программы компоновки графиков, такой как ГрафВиз.

Другие советы

Я с нетерпением жду результатов вашего проекта. Я согласен с scompt об использовании graphviz.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top