4

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

我需要的是交叉口区域

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

示例图表。

4

1 回答 1

4

这两点应该是你所需要的。但是我不确定你为什么要相交。要么你需要知道面积(宽度*高度),要么你需要可视化交叉点。无论哪种方式,知道矩形的两个点就足够了。我准备了一个小例子,以防它对你有用。

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));
于 2012-11-18T20:28:22.863 回答