一个不错的求矩形交集的算法

本文提供了一段C++代码示例,展示了如何计算两个矩形的交集区域。通过比较矩形的左右上下边界,该代码有效确定了两个矩形相交部分的坐标范围。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*************************************************************************
    Return a Rect object that is the intersection of 'this' with 'rect'
************************************************************************
*/
Rect Rect::getIntersection(
const Rect& rect) const
{
    
// check for total exclusion
    if ((d_right > rect.d_left) &&
        (d_left 
< rect.d_right) &&
        (d_bottom 
> rect.d_top) &&
        (d_top 
< rect.d_bottom))
    {
        Rect temp;

        
// fill in temp with the intersection
        temp.d_left = (d_left > rect.d_left) ? d_left : rect.d_left;
        temp.d_right 
= (d_right < rect.d_right) ? d_right : rect.d_right;
        temp.d_top 
= (d_top > rect.d_top) ? d_top : rect.d_top;
        temp.d_bottom 
= (d_bottom < rect.d_bottom) ? d_bottom : rect.d_bottom;

        
return temp;
    }
    
else
    {
        
return Rect(0.0f0.0f0.0f0.0f);
    }

}

转载于:https://www.cnblogs.com/lancidie/archive/2011/07/18/2109323.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值