path
svg によって描画された 2 つの形状が交差しているかどうかをテストする (コードとパフォーマンスの両方の観点から) 良い方法は何ですか? 私はd3でこれを行っており、「カーディナルクローズド」ライン補間を使用しています
より具体的には、凸包 (画像よりも複雑) を作成しており、重なっている場合はそれらをマージしたいと考えています。「線形閉じた」補間を使用すると、頂点を使用して交点を計算できるため、簡単に実行できますが、使用する場所では「カーディナル閉じた」補間の方が見栄えがします。
var v1 = [[100,100],[200,100],[200,200],[100,200]],
v2 = [[210,100],[310,100],[310,200],[210,200]];
var hull1 = d3.geom.hull(v1),
hull2 = d3.geom.hull(v2);
var svg = d3.select("#foo")
.append("svg");
var line = d3.svg.line()
.interpolate("cardinal-closed")
.x(function(d) {return d[0];})
.y(function(d) {return d[1];});
svg.append("path")
.attr("d", line(hull1));
svg.append("path")
.attr("d", line(hull2));
ここにjsfiddleがあります。これらの形状が交差/重複しているかどうかをテストするにはどうすればよいですか?