我打算编写一个基于Web的图编辑器.如果是桌面版,我会选择 Eclipse GEF作为构建它的平台.

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

我可能仍然可以将d3强制适应这个编辑器的制作,但后来我想知道d3是否会以一种方式进化,这会让编辑器继续保持前进的痛苦.

所以我对社区的问题是:从软件架构的角度来看,d3是构建自由格式图编辑器的不错选择吗?你能告诉我API,d3内部代码,文章或例子,证明这样的编辑可以长期站立吗?

解决方法

如果问题是“D3可以帮助我创建基于Web的图编辑器中涉及的SVG交互吗?”,那么答案就是“是的,一点点”.但是你正在开展一个非常大的项目,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了,但它很好地说明了图书馆超越图表的能力.图表.

javascript – d3是构建自由格式图编辑器的好选择吗?的更多相关文章

  1. html+js 实现markdown编辑器效果

    这篇文章主要介绍了html+js 实现markdown编辑器效果,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  2. 从xcode ios中删除未使用的方法

    我正在使用带有目标c的xcode9.我想从类中删除未使用的变量和方法.我也使用这种方式,但xcode不警告未使用的方法等.如何找出?

  3. 将Emacs与Xcode 4一起使用?

    如果出于某种原因Apple疯狂并从Xcode中删除了这个功能,有没有办法从Emacs中编辑xcodeproj,以及构建和使用iPhone模拟器?

  4. 如何在Xcode 4.4.1中的Core Data Model编辑器中完全删除实体描述

    用户界面中只存在“添加实体”按钮.解决方法>突出显示要删除的实体.>按退格键(删除)键.

  5. 在XCode中禁用Word-Wrap

    我想在XCode中禁用Word-Wrap“功能”.可以这样做吗?

  6. Xcode数据模型编辑器不出现

    解决方法我遇到了一个类似的问题.问题是项目目录结构及其在XCode中的配置方式.更多细节:XCodeCant’EditCoreDataModel

  7. xcode4 – 如何关闭分割窗口/相邻编辑器 – Xcode 4

    我通过玩Xcode4中的菜单进行管理,在相邻编辑器中打开一个窗口.不幸的是,我无法找出如何关闭该窗口.你如何做到这一点?解决方法我通过转到’view>编辑>标准“,并将视图重置为标准的一个窗口视图.我还没弄清楚为什么新窗口右上角的x是灰色的.不是一个完美的解决方案,而是解决方案

  8. osx – Xcode 8扩展在编辑器菜单中不可见

    谢谢您的帮助.解决方法我想到了.默认情况下,项目未签名.单击项目并转到常规设置,然后在macOS应用程序和扩展程序目标上选择启用开发签名修复问题.

  9. 如何解决XCode滑动手势去上一个/下一个文件冻结编辑器?

    从今天早上起,我在小牛的XCode5中面临着一个非常烦人的bug:我用来从左到右用两根手指在MacBook触控板上滑动,以前往/下一个文件进入XCode编辑器.但是,现在,这样做完全冻结了编辑器,刚刚移动了像5像素的东西.之后,我必须关闭XCode并重新打开它,使编辑器重新工作.按下上一个/下一个按钮,因为它不会触发这个错误的动画.有没有人有这个问题或有任何线索来解决它?

  10. ios – 如何设置IBInspectable Int的最大限制

    我在Swift中使用IBInspectableInt来选择4种形状(0-3),但是在故事板编辑器中可以设置大于3且小于0的值,这会阻止IBDesignable系统工作.是否可以设置故事板编辑器中可以设置的值的最小和最大限制?解决方法没有办法限制用户在Storyboard中输入的内容.但是,您可以使用计算属性阻止存储无效值:然后你也可以使用枚举而不是常量来在内部表示不同的形状类型.

随机推荐

  1. js中‘!.’是什么意思

  2. Vue如何指定不编译的文件夹和favicon.ico

    这篇文章主要介绍了Vue如何指定不编译的文件夹和favicon.ico,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  3. 基于JavaScript编写一个图片转PDF转换器

    本文为大家介绍了一个简单的 JavaScript 项目,可以将图片转换为 PDF 文件。你可以从本地选择任何一张图片,只需点击一下即可将其转换为 PDF 文件,感兴趣的可以动手尝试一下

  4. jquery点赞功能实现代码 点个赞吧!

    点赞功能很多地方都会出现,如何实现爱心点赞功能,这篇文章主要为大家详细介绍了jquery点赞功能实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  5. AngularJs上传前预览图片的实例代码

    使用AngularJs进行开发,在项目中,经常会遇到上传图片后,需在一旁预览图片内容,怎么实现这样的功能呢?今天小编给大家分享AugularJs上传前预览图片的实现代码,需要的朋友参考下吧

  6. JavaScript面向对象编程入门教程

    这篇文章主要介绍了JavaScript面向对象编程的相关概念,例如类、对象、属性、方法等面向对象的术语,并以实例讲解各种术语的使用,非常好的一篇面向对象入门教程,其它语言也可以参考哦

  7. jQuery中的通配符选择器使用总结

    通配符在控制input标签时相当好用,这里简单进行了jQuery中的通配符选择器使用总结,需要的朋友可以参考下

  8. javascript 动态调整图片尺寸实现代码

    在自己的网站上更新文章时一个比较常见的问题是:文章插图太宽,使整个网页都变形了。如果对每个插图都先进行缩放再插入的话,太麻烦了。

  9. jquery ajaxfileupload异步上传插件

    这篇文章主要为大家详细介绍了jquery ajaxfileupload异步上传插件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  10. React学习之受控组件与数据共享实例分析

    这篇文章主要介绍了React学习之受控组件与数据共享,结合实例形式分析了React受控组件与组件间数据共享相关原理与使用技巧,需要的朋友可以参考下

返回
顶部