0
由於它目前爲SVG-編輯2.6:當選擇框與對象b.box(邊界框)相交選擇SVG元素,其中的選擇框完全吞沒對象
選擇工具選擇對象。
我認爲這是錯誤的用戶體驗。
選擇工具應該只選擇對象之一:
- 席捲整個對象 - 或者 - 相交的實際對象
我在整個應用程序的LOC的1000的丟失。任何人有一個想法,我可以擺弄這些代碼,使其工作和/或任何可能的想法如何實現我的任何上述建議?
由於它目前爲SVG-編輯2.6:當選擇框與對象b.box(邊界框)相交選擇SVG元素,其中的選擇框完全吞沒對象
選擇工具選擇對象。
我認爲這是錯誤的用戶體驗。
選擇工具應該只選擇對象之一:
- 席捲整個對象 - 或者 - 相交的實際對象
我在整個應用程序的LOC的1000的丟失。任何人有一個想法,我可以擺弄這些代碼,使其工作和/或任何可能的想法如何實現我的任何上述建議?
,以便選擇元素時選擇框「席捲整個對象」,你可以試試這個: -
1)同時使選擇框,選中元素的所有四個角是否在選擇框裏面與否。 你可以使用getBBox()獲得四點元素。如: -
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。爲此,一種解決方案是將您的形狀轉換爲「路徑」,然後獲取路徑的所有「節點」。最後逐一比較所有這些節點(點)與選擇矩陣。
得到點的路徑,試試這個功能: -
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;
}
;
(這就是我想出的)。 :-)
爲什麼不問問svg-edit用戶組? https://groups.google.com/forum/#!forum/svg-edit –