Javascript 计算两条路径的相交面积

Javascript 计算两条路径的相交面积,javascript,raphael,Javascript,Raphael,库中只有一个Raphael.pathIntersection(path1,path2)实用程序,此方法只能获取这两条路径的交点 我需要的是交叉口区域 如下图所示,该方法仅获得2个点(用红色圆圈标记)。我希望有2个其他点(用蓝色圆圈标记)同时形成一个交叉区域路径 这两点应该是您所需要的。但是我不知道你为什么要交叉。您需要知道面积(宽度*高度),或者需要可视化交叉点。 无论哪种方法,只要知道矩形的两点就足够了。我已经准备好了,以防对你有用 var p1 = "M100 100 L100 400 L4

库中只有一个
Raphael.pathIntersection(path1,path2)
实用程序,此方法只能获取这两条路径的交点

我需要的是交叉口区域

如下图所示,该方法仅获得2个点(用红色圆圈标记)。我希望有2个其他点(用蓝色圆圈标记)同时形成一个交叉区域路径


这两点应该是您所需要的。但是我不知道你为什么要交叉。您需要知道面积(宽度*高度),或者需要可视化交叉点。 无论哪种方法,只要知道矩形的两点就足够了。我已经准备好了,以防对你有用

var p1 = "M100 100 L100 400 L400 400 L400 100 Z",
    p2 = "M200 200 L200 500 L500 500 L500 200 Z";
var paper = new Raphael(0, 0, 800, 600);

paper.path(p1).attr({fill : "red", opacity : 1});
paper.path(p2).attr({fill : "blue", opacity : 0.5});

var points = Raphael.pathIntersection(p1, p2);
var w = points[1].x-points[0].x,
    h = points[0].y-points[1].y;
var group = paper.set();
group.push(paper.rect(510, 100, w, h).attr({fill: "yellow"}));
group.push(paper.text(610, 150, "The intersection area\nis drawn over here.\n \nWidth: " + w + "\nHeight: " + h));

非常感谢@andersand,您的回答在处理两个矩形时非常有效。实际上,我希望对两条路径有一个更一般的解决方案,即矩形和三角形;不要更改注释中的范围?如果我的答案对你有用的话,至少就我花在上面的时间来投票吧。这是一个很好的答案,如果你尝试对一条路径这样做,你可能会发现一个错误,它无法正确报告交叉口--