Сделать элементы «недоступными для выбора» в JointJS

StackOverflow https://stackoverflow.com//questions/22023770

  •  21-12-2019
  •  | 
  •  

Вопрос

я использовал Джойнтжс библиотека диаграмм в одном из моих проектов.

1) Мне любопытно узнать, предоставляет ли он какой-либо способ запретить пользователям играть с элементами диаграммы.Я имею в виду:пользователь сможет видеть диаграмму как изображение, а не взаимодействовать с ней, например изменять размер, положение, перетаскивать ссылки и т. д.

2) Мое приложение сильно от этого зависит.Хотя я решил проблему автоматического макета, но возможно ли это с Jointjs, можем ли мы просто сказать библиотеке, что нам нужны эти элементы и все такое, и, пожалуйста, помогите нам создать диаграмму с наиболее подходящими, неконфликтующими элементами и с минимумом количество ссылок, сталкивающихся друг с другом и с элементами на своем пути, если ссылки представляют собой непрерывные прямые линии?

3) Наконец, я хочу знать, можем ли мы проверить ссылки, конфликтующие с другими элементами или с другими ссылками на той же диаграмме.Я знаю, что это возможно в случае элементов.

if (element1.getBBox().intersect(element2.getBBox())) {
    // elements intersect
}
Это было полезно?

Решение

1) Используйте либо new joint.dia.Paper({ interactive: false, ... }) или установите для свойства CSS pointer-events значение 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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top