5

我在我的一个项目中使用了 Jointjs图表库。

1)我很想知道它是否提供了任何方法来限制用户不玩图表的元素。我的意思是:用户将能够将图表视为图像,而不是与它进行交互,例如调整大小、更改位置、拖动链接等。

2) 我的应用程序严重依赖它。虽然我已经解决了自动布局的问题,但是使用 Jointjs 是否可行,我们可以告诉库我们想要这些元素和东西吗,请帮助我们用最合适的、非碰撞的元素和最少的元素制作图表如果链接是连续的直线,则相互碰撞以及与路径中的元素发生碰撞的链接数量?

3) 最后,我想知道我们是否可以检查与其他元素或同一图中的其他链接发生冲突的链接。我知道在元素的情况下这是可能的。

if (element1.getBBox().intersect(element2.getBBox())) {
    // elements intersect
}
4

1 回答 1

9

new joint.dia.Paper({ interactive: false, ... })1)直接在纸上使用或将 pointer-events 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

于 2014-02-26T10:16:02.367 回答