Raphaël库中只有一个Raphael.pathIntersection(path1, path2)
实用程序,此方法只能获得这两个路径的交叉点。
我需要的是交叉区域。
如下图所示,该方法仅获得2分(标有红色圆圈)。我希望同时有2个其他点(用蓝色圆圈标记。)来形成一个交叉区域路径。
答案 0 :(得分:3)
这两点应该是你所需要的。但是我不确定你为什么要相交。您需要知道区域(宽度*高度)或者您需要可视化交叉点。 无论哪种方式,它足以知道矩形的两个点。我已准备好a little example,以防它对您有用。
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));