我在我的一个项目中使用了Jointjs图表库。
1)我很想知道它是否提供了限制用户不使用图表元素的方法。我的意思是:用户可以将图表视为图像而不是与图像进行交互,如调整大小,更改位置,拖动链接等。
2)我的应用程序严重依赖于它。虽然我已经解决了自动布局的问题,但是有可能使用Jointjs,我们可以告诉lib我们想要这些元素和东西,并请帮助我们制作具有最合适,非碰撞元素的图表,并且最小化如果链接是连续的直线,链接的数量是否相互冲突以及路径中的元素?
3)最后,我想知道我们是否可以检查与其他元素或同一图表中的其他链接发生冲突的链接。我知道有可能是元素。
if (element1.getBBox().intersect(element2.getBBox())) {
// elements intersect
}
答案 0 :(得分:9)
1)在论文中直接使用new joint.dia.Paper({ interactive: false, ... })
或将指针事件CSS属性设置为none:paper.$el.css('pointer-events', 'none')
2)您可以使用joint.layout.DirectedGraph插件。这个插件可以在这里下载:http://jointjs.com/download和描述它的博客文章在这里:http://www.daviddurman.com/automatic-graph-layout-with-jointjs-and-dagre.html。
3)一般来说,这不容易。我将指向此站点,以获取计算两条路径之间交叉点的示例:http://www.kevlindev.com/geometry/2D/intersections/intersect_bezier2_bezier2.svg。这是下载的库:http://www.kevlindev.com/gui/math/intersection/index.htm