Javascript d3是构建自由形式图编辑器的好选择吗?

Javascript d3是构建自由形式图编辑器的好选择吗?,javascript,d3.js,diagramming,Javascript,D3.js,Diagramming,我计划写一个基于网络的图表编辑器。如果是桌面的话,我会选择作为平台来构建它 对于web,我正在考虑d3.js,但我有点担心,我在d3上看到的几乎所有示例和文章都是用于可视化数据,而不是真正用于交互式点击、选择和连接、拖动和绘制之类的用途 我可能仍然能够强迫FitD3加入到这个编辑器的制作中,但是我想知道d3是否会以一种让编辑器继续前进的方式发展下去 因此,我向社区提出的问题是:从软件架构的角度来看,d3是构建自由形式图表编辑器的好选择吗?你能告诉我API、d3内部代码、文章或示例,这些都可以证明

我计划写一个基于网络的图表编辑器。如果是桌面的话,我会选择作为平台来构建它

对于web,我正在考虑d3.js,但我有点担心,我在d3上看到的几乎所有示例和文章都是用于可视化数据,而不是真正用于交互式点击、选择和连接、拖动和绘制之类的用途

我可能仍然能够强迫FitD3加入到这个编辑器的制作中,但是我想知道d3是否会以一种让编辑器继续前进的方式发展下去


因此,我向社区提出的问题是:从软件架构的角度来看,d3是构建自由形式图表编辑器的好选择吗?你能告诉我API、d3内部代码、文章或示例,这些都可以证明这样的编辑器可以长期使用吗?

d3只是一个框架,因此几乎可以用于任何事情。不过,这听起来确实不太适合你要做的事情。特别是,这听起来不像D3的主要概念——一切都由数据驱动——在这里是有益的。

如果问题是D3能帮助我处理创建基于web的图表编辑器所涉及的SVG交互吗?,那么答案将是肯定的,有一点。但是你正在着手一个非常大的项目,D3只能帮助你完成其中的一些部分

D3可提供帮助的领域示例:

从图表定义中呈现一组现有形状: 对新连接器路径进行一些有限的自动布线:但是一旦您需要超出自动布线连接器的范围,您将有很多额外的工作要做。 冲突检测:虽然这只是示例代码,而不是D3本身。 用于区域选择的笔刷: 有界拖放: 总的来说,我认为您可能正在寻找一个更高级别的框架,除非您准备好控制D3的几乎每个方面

您是对的,D3提供的大多数辅助方法都是面向数据可视化的,但它确实在SVG上提供了一个薄层,这对您描述的通用项目很有帮助


至于D3将来是否会朝着不太适合这个项目的方向发展:只有@mbostock可以确定,但考虑到API的设计,它可以用于SVG或HTML节点操作,我认为可以肯定的是,它将保持相当低的水平。你可能已经看过了,但它很好地说明了图书馆在图表和图表之外的力量。

这需要意见,所以投票结束。编辑后,它不再是一个开放式的征求意见的问题,而是一个可以明确回答的问题。总体上同意,但不会完全忽略一切都是由数据方法驱动的。您必须以某种方式呈现现有的图表,它们是数据节点、形状、连接等