我使用库svg.js,并且我需要检测rect和其他元素之间的交集。为此,我考虑了以下库:quazistax,svg-intersections,svg.intersection.js和其他一些库。其中一些不起作用,其中一些工作缓慢。我开始使用SVG.checkIntersection(),但是它不正确地找到rect和polyline之间的交集。例如,example 1。在此示例中,checkIntersection()仅在3种情况下返回true。或在示例example 2中,仅在1种情况下,checkIntersection()返回true。试图在路径中转换折线,但这无效(总是返回false)。我该如何解决?
这是代码示例:
const xCoordinate = rectGroup.x();
const yCoordinate = rectGroup.y();
const svgRect = SVG.node.createSVGRect();
svgRect.x = xCoordinate;
svgRect.y = yCoordinate;
svgRect.width = rect.attr('width');
svgRect.height = rect.attr('height');
const isElementsIntersect = SVG.node.checkIntersection(polyline.node, svgRect);
SVG-主容器。 rectGroup-它是组(在示例3中),其中包括rect。 example 3 rect-在示例3中。 svgRect-新的svg rect,因为如果在checkIntersection()中传递rect.node,它将无法正常工作。