gpt4 book ai didi

javascript - 使用 KineticJS 绘制有根树

转载 作者:太空狗 更新时间:2023-10-30 01:23:19 25 4
gpt4 key购买 nike

我正在开发一个网络应用程序,它需要动态绘制 Root过的 n 元树,以绘制技能之间的先决条件关系。它实际上已经这样做了,你可以看到 an example here .我正在尝试改进它,使用布局的算法 here in PyMag我必须承认,我在尝试弄清楚如何使它适应我的 JavaScript 代码时有点迷茫。

编辑:这是my current code用于从 Rails ERB 部分绘制这些树(我会在此处粘贴代码,但它有点冗长)。

对于查看我的代码的人来说,gon.skills_map 是一个采用这种格式的数组:

  • gon.skills_map[0]是字符串中的技能标题
  • gon.skills_map[1]是技能的URL,这样每个节点都可以点击
  • gon.skills_map[2] 是一组后置条件(我称之为先决条件的对立面)数组,格式完全相同
  • gon.skills_map[3] 是先决条件关系的评分(影响线条粗细)

最佳答案

您可以使用 d3.js 数据可视化库。它比手动构建树要好得多,尤其是当图形变得更复杂时。d3 使用 svg,因此您可以与图形进行丰富的交互,例如单击、悬停、拖动等。

尽管如此,您仍需要将图表转换为适当的数据结构:

{
title: 'Skill A',
url: 'http://skilla.com',
children: [
{
title: 'Skill B',
url: 'http://skillb.com',
rating: 3,
children: [
{
title: 'Skill D',
url: 'http://skilld.com',
rating: 5
},
{
title: 'Skill E',
url: 'http://skilld.com',
rating: 10
}
]
},
{
title: 'Skill C',
url: 'http://skillc.com',
rating: 1
}
]
}

这里的评级显示了对父技能的依赖程度。我在这个 fiddle 中用 d3 创建了一个示例技能树 http://jsfiddle.net/atrniv/y8drq/2/

此外,如果您可以选择 d3,则可以从相同的技能依赖数据集创建多个不同的可视化。

d3 网站 - http://d3js.org/

关于javascript - 使用 KineticJS 绘制有根树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14590634/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com