Я хотел бы создать дерево навыков для себя и для сообщества. У меня есть данные в формате, как показано ниже:
skill_1 [description etc.] requires: none
skill_2 [...] requires: skill_1
skill_3 [...] requires: skill_1, skill_2
skill_4 [...] requires: skill_1 OR skill_2
(формат данных из акции "Цивилизация 5 единиц")
Теперь я хочу преобразовать эту информацию в графическую древовидную структуру. Что-то вроде: Изображение дерева умений
Основная проблема, с которой я столкнулся, заключается в том, что связи между навыками запутываются и я получаю беспорядок вместо четкой, полезной картины, когда я добавляю эти навыки по одному. Существует ли какой-либо (сортировка?) Алгоритм для предотвращения (или минимизации) пересечения соединений? Или я должен вручную включить их в графическую программу?