对于网络,我正在考虑d3.js,但我有点担心,我在d3上遇到的几乎所有示例和文章都是用于可视化数据,而不是真正用于交互式点击,选择 – 和连接,拖动和绘制的用法.
我可能仍然可以将d3强制适应这个编辑器的制作,但后来我想知道d3是否会以一种方式进化,这会让编辑器继续保持前进的痛苦.
所以我对社区的问题是:从软件架构的角度来看,d3是构建自由格式图编辑器的不错选择吗?你能告诉我API,d3内部代码,文章或例子,证明这样的编辑可以长期站立吗?
解决方法
D3可以提供帮助的领域示例:
>从图表定义中渲染一组现有形状:http://bl.ocks.org/explunit/4659227
>对新连接器路径进行一些有限的自动路由:http://bl.ocks.org/explunit/5603250但是,一旦您需要超越自动路由连接器,您将需要进行大量额外工作.
>碰撞检测:http://bl.ocks.org/mbostock/3231298虽然这不仅仅是D3本身的示例代码.
>区域选择刷:Fine-grained event handling with D3 brushes
>有界阻力&下降:http://bl.ocks.org/mbostock/1557377
总的来说,我认为您可能正在寻找更高级别的框架,除非您准备好控制D3所做的几乎所有方面.
你提出的大多数辅助方法都适用于数据可视化,但它确实提供了一个超过SVG的薄层,可以帮助你描述的通用项目.
至于D3是否会朝着可能使其在未来不太适合该项目的方向发展:只有@mbostock可以确定,但考虑到API的设计,它可以用于SVG或HTML节点操作,我认为可以说它会保持相当低的水平.而且你之前可能已经看过this example了,但它很好地说明了图书馆超越图表的能力.图表.