2012-09-06 4 views
0

뷰포트에서 보이거나 부분적으로 볼 수있는 이미지 만 관련되는 프로세스를 실행 중입니다. 다음 코드가 작동하면 img의 일부가 화면에 있으면 true를 반환합니다. 그러나 동일한 논리를 표현하는보다 간결한 방법이 있습니까?이미지가 뷰포트 내에 있거나 부분적으로 뷰포트에 있는지 확인하기위한 로직

//Can't figure out an easier way to do this! 
    return (imgLeft>=winData.l && imgLeft<winData.r && imgTop>=winData.t && imgTop<winData.b) || //TL somewhere on screen 
     (imgRight>=winData.l && imgRight<winData.r && imgTop>=winData.t && imgTop<winData.b) || //TR somewhere on screen 
     (imgLeft>=winData.l && imgLeft<winData.r && imgBottom>=winData.t && imgBottom<winData.b) || //BL somewhere on screen 
     (imgRight>=winData.l && imgRight<winData.r && imgBottom>=winData.t && imgBottom<winData.b) || //BR somewhere on screen 
     (imgLeft<winData.l && imgRight>winData.r && imgTop>=winData.t && imgTop<winData.b) || //L offscreen L and R offscreen R, top on screen 
     (imgLeft<winData.l && imgRight>winData.r && imgBottom>=winData.t && imgBottom<winData.b) || //L offscreen L and R offscreen R, bottom on screen 
     (imgTop<winData.t && imgBottom>winData.b && imgLeft>=winData.l && imgLeft<winData.r) || //T offscreen T and B offscreen B, left on screen 
     (imgTop<winData.t && imgBottom>winData.b && imgRight>=winData.l && imgRight<winData.r) || //T offscreen T and B offscreen B, right on screen 
     (imgLeft<winData.l && imgRight>winData.r && imgTop<winData.t && imgBottom>winData.b) //All sides offscreen 

답변

0

좋아 DOH는 내가 :)

return imgLeft < winRight && 
     imgRight > winLeft && 
     imgTop < winBottom && 
     imgBottom > winTop; 
생각 밖에 너무 많은 그 일에 대해 생각하는 그 식사 ...의 무언가를 만들어
관련 문제