RaphaëlRaphael.pathIntersection(path1, path2)
ライブラリにはユーティリティしかなく、このメソッドはこれら 2 つのパスの交点しか取得できません。
必要なのは交差点エリアです。
下の画像のように、メソッドは 2 つのポイント (赤い丸でマーク) しか取得しません。交差領域のパスを形成するために、同時に他の 2 つのポイント (青い円でマーク) があると予想しています。
RaphaëlRaphael.pathIntersection(path1, path2)
ライブラリにはユーティリティしかなく、このメソッドはこれら 2 つのパスの交点しか取得できません。
必要なのは交差点エリアです。
下の画像のように、メソッドは 2 つのポイント (赤い丸でマーク) しか取得しません。交差領域のパスを形成するために、同時に他の 2 つのポイント (青い円でマーク) があると予想しています。
必要なのはこの 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));