我正在研究一种绘制思维导图的算法。此处的要点是智能地布置节点,以使它们之间没有重叠,并且看起来分布均匀。作为示例,请参见以下屏幕截图(来自MindNode):

给定每个节点占用的空间,关于如何很好地安排此结构的任何想法?您是否知道我可以研究的任何代码(比graphviz还要简单一些)?

在它出现之前,我没有在寻找诸如this之类的“物理模拟”算法,也没有在寻找诸如dot之类的程序。最后,我想在JS中实现它,但是为了理解算法,任何语言都可以。

最佳答案

我猜你只能用CSS做到这一点。将正确的JS类提供给您的节点,CSS会根据需要安排它们。

例如,您可以在每个节点上设置margin: 1em 0 1em 0,使其具有足够的空间,等等。

10-06 12:09