選択ボックス「オブジェクト全体を巻き込む」ときに要素を選択するには、これを試すことができます:-
1) 選択ボックスを作成する際に、要素の四隅がすべて選択ボックス内にあるかどうかを確認します。getBBox() を使用して要素の 4 つのポイントを取得できます。そのような:-
var bbox=element.getBBox();
var x=bbox.x;
var y=bbox.y;
var width=bbox.width;
var height=bbox.height;
var point1={
x:x,
y:y
};
var point2={
x:x+width,
y:y
};
var point3={
x:x+width,
y:y+height
};
var point4={
x:x,
y:y+height
};
すべてのポイントを選択長方形と比較し、すべてが選択長方形内にある場合は、要素を選択します。
2) 次に「実物」について。BBoxではなく、要素の実際の形状を意味していると思います。そのための 1 つの解決策は、形状を「パス」に変換してから、パスのすべての「ノード」を取得することです。最後に、これらすべてのノード (ポイント) を選択 rect と 1 つずつ比較します。
パス内のポイントを取得するには、次の関数を試してください:-
function path2Array(path) {
var pointsArray = new Array();
for (var i = 0; i < path.getTotalLength(); i++) {
var point = path.getPointAtLength(i);
var cordinatesXY = {
x: point.x,
y: point.y
}
pointsArray.push(cordinatesXY);
}
return pointsArray;
}
;
(それは私が思いついたものです)。:-)