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
4

1 に答える 1

0

わかりました、私はその食事の何かを作りました...私が思うその日について考えるには他に多すぎます:)

return imgLeft < winRight &&
       imgRight > winLeft &&
       imgTop < winBottom &&
       imgBottom > winTop;
于 2012-09-07T23:33:21.767 に答える