矩形检测碰撞算法

 /**  
     * 矩形检测碰撞(标准平面坐标)  
     * @param aLeftTopX     左上角x坐标值  -- 矩形1  
     * @param aLeftTopY     左上角y坐杯值  
     * @param aRightBottomX 右下角x坐标值  
     * @param aRightBottomY 右下角y坐标值  
     * @param bLeftTopX     左上角x坐标值  -- 矩形2  
     * @param bLeftTopY     左上角y坐标值  
     * @param bRightBottomX 右下角x坐标值  
     * @param bRightBottomY 右下角y坐标值  
     * @return 是否碰撞  
     */   
    public static  boolean intersectRect(int aLeftTopX, int aLeftTopY, 
        int aRightBottomX, int aRightBottomY,    
        int bLeftTopX, int bLeftTopY, 
        int bRightBottomX, int bRightBottomY) {   
           
        /*  
         * bLeftTopX >= aRightBottomX -> b在a的右边  
         * bLeftTopY >= aRightBottomY -> b在a的下面  
         * bRightBottomX <= aLeftTopX -> b在a的左边  
         * bRightBottomY <= aLeftTopY -> b在a的上面  
         */   
        if (bLeftTopX >= aRightBottomX || bLeftTopY >= aRightBottomY    
            || bRightBottomX <= aLeftTopX || bRightBottomY <= aLeftTopY) {   
            return false;   
        } else {   
            return true;   
        }      
    }   
       
    /**  
     * 矩形检测碰撞(标准平面坐标)  
     * @param aLeftTopX 左上角x坐标值 --矩形1  
     * @param aLeftTopY 左上角y坐标值  
     * @param aWidth    宽  
     * @param aHeight   高  
     * @param bLeftTopX 左上角x坐标值 --矩形2  
     * @param bLeftTopY 左上角y坐标值  
     * @param bWidth    宽  
     * @param bHeight   高  
     * @return 是否碰撞  
     */   
    public static final boolean isIntersectingRect(int aLeftTopX, 
        int aLeftTopY, int aWidth, int aHeight,    
        int bLeftTopX, int bLeftTopY, 
        int bWidth, int bHeight) {   
           
        /**  
         * bLeftTopX > aLeftTopX + aWidth  b在a的右边  
         * bLeftTopY > aLeftTopY + aHeght  b在a的下面  
         * bLeftTopX + bWidth < aLeftTopX  b在a的左边  
         * bLeftTopX + bHeight < aLeftTopY b在a的上面   
         */   
        if (bLeftTopX > aLeftTopX + aWidth || bLeftTopY > aLeftTopY + aHeight 
            || bLeftTopX + bWidth < aLeftTopX 
            || bLeftTopY + bHeight < aLeftTopY) {   
            return false;   
        } else {   
            return true;   
        }    
    } 

你可能感兴趣的:(算法)