Как нарисовать карту ума
Я работаю над алгоритмом для рисования карты ума. Суть в том, чтобы правильно расположить узлы, чтобы не было перекрытий, и это выглядит красиво распределенным. В качестве примера смотрите этот скриншот (из MindNode):
Любые идеи о том, как правильно организовать эту структуру, учитывая пространство, которое занимает каждый узел? Знаете ли вы какие-либо коды, которые я мог бы рассмотреть (что-то немного проще, чем графвиз)?
Прежде чем он появится, я не ищу алгоритмы "физического моделирования", такие как эта, или готовые программы, такие как точка. В конце я хочу реализовать его на JS, но для понимания алгоритма подойдет любой язык.
1 ответ
Я думаю, вы могли бы сделать это только с помощью CSS. Дайте правильные классы с JS для ваших узлов, и CSS позаботится об их организации по мере необходимости.
Например, вы можете установить margin: 1em 0 1em 0
на каждом узле, чтобы на нем было достаточно места и т. д.