Как нарисовать карту ума

Я работаю над алгоритмом для рисования карты ума. Суть в том, чтобы правильно расположить узлы, чтобы не было перекрытий, и это выглядит красиво распределенным. В качестве примера смотрите этот скриншот (из MindNode):

как это должно выглядеть

Любые идеи о том, как правильно организовать эту структуру, учитывая пространство, которое занимает каждый узел? Знаете ли вы какие-либо коды, которые я мог бы рассмотреть (что-то немного проще, чем графвиз)?

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

1 ответ

Решение

Я думаю, вы могли бы сделать это только с помощью CSS. Дайте правильные классы с JS для ваших узлов, и CSS позаботится об их организации по мере необходимости.

Например, вы можете установить margin: 1em 0 1em 0 на каждом узле, чтобы на нем было достаточно места и т. д.

Другие вопросы по тегам