0
이미지 x, y 위치, 너비 및 높이가 포함 된 bCoord 배열이 있습니다. 나는 서로를 덮지 않는 배열에 다른 객체를 삽입하고 싶습니다. 배열 객체의 크기가 삽입하려는 객체와 크거나 같으면 소스 벨로우즈가 잘 작동합니다. 그렇지 않으면 그렇지 않습니다. 나는 그것을위한 해결책을 가지고있다. 그러나 그것은 매우 좋지 않다. 누군가이 문제와 관련하여 좋은 해결책을 가지고 있다면, 저를 공유하십시오. here 찾을 수두 개의 오브젝트 커버
hitTest = function(o, l){
function getOffset(o){
for(var r = {l: o.offsetLeft, t: o.offsetTop, r: o.offsetWidth, b: o.offsetHeight};
o = o.offsetParent; r.l += o.offsetLeft, r.t += o.offsetTop);
return r.r += r.l, r.b += r.t, r;
}
for(var b, s, r = [], a = getOffset(o), j = isNaN(l.length), i = (j ? l = [l] : l).length; i;
b = getOffset(l[--i]), (a.l == b.l || (a.l > b.l ? a.l <= b.r : b.l <= a.r))
&& (a.t == b.t || (a.t > b.t ? a.t <= b.b : b.t <= a.b)) && (r[r.length] = l[i]));
return j ? !!r.length : r;
};
: 객체가 서로 겹치는 경우
this.isCover = function(pixel, width, height)
{
for (var i=0; i<bCoords.length; i++)
if (isThereBuilding(bCoords[i],pixel.x, pixel.y) || isThereBuilding(bCoords[i],pixel.x+width, pixel.y) ||
isThereBuilding(bCoords[i],pixel.x, pixel.y+height) ||isThereBuilding(bCoords[i],pixel.x+width, pixel.y+height))
return bCoords[i];
return null;
}
function isThereBuilding(obj,x, y)
{
return (obj.x <= x && (obj.w+obj.x)>= x) && (obj.y <= y && (obj.h+obj.y) >= y);
}
감사합니다. 나는이 사이트를 좋아한다. –