Raphaël库中只有一个Raphael.pathIntersection(path1, path2)
实用程序,该方法只能获取这两条路径的交点。
我需要的是交叉口区域。
如下图,该方法只得到 2 分(用红色圆圈标记)。我希望同时有 2 个其他点(用蓝色圆圈标记)来形成交叉区域路径。
Raphaël库中只有一个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));