我正在开发一个 web 应用程序,它需要动态绘制有根的 n 元树,以绘制技能之间的先决条件关系。它实际上已经这样做了,您可以在此处查看示例。不过,我正在尝试改进它,使用PyMag 中列出的算法,我必须承认,我在试图弄清楚如何使其适应我的 JavaScript 代码时有点迷失了。
编辑:这是我当前用于绘制这些树的代码,来自 Rails ERB 部分(我会在此处粘贴代码,但有点冗长)。
对于那些检查我的代码的人来说,gon.skills_map
是一个这种格式的数组:
- gon.skills_map[0] 是字符串中的技能标题
- gon.skills_map[1] 是技能的URL,这样每个节点都是可点击的
- gon.skills_map[2] 是一个后置条件数组(我称之为先决条件的反面)数组,格式完全相同
- gon.skills_map[3] 是先决关系的等级(影响线条粗细)