IOU的C语言快速实现

typedef enum {
    REF_FRONTLEFT = 0,
    REF_FRONTRIGHT,
    REF_REARRIGHT,
    REF_REARLEFT,
    REF_FRONTCENTER,
    REF_RIGHTCENTER,
    REF_REARCENTER,
    REF_LEFTCENTER,
    REF_CENTER,

    REF_POINT_CNT
}EReferencePoint;

typedef struct {
    float x;       
    float y;   
} Point2F;

typedef struct {
    EReferencePoint en_ref_point;
    Point2F xy_point;
}RefPoint_st;

typedef struct {
    u_char_t size;
    Point2F  point_coordinate[10];
}Overlap_Points;

/*!
此部分函数主要是计算矩形相交的面积   备注:将4个点按照时钟序排列(必须是顺时针或者逆时针排序好的)
box1_refpoint  : box1的参考点结构体包含为哪个参考点和其坐标(必须是按照时钟序排列)
\box2_refpoint  : box1的参考点结构体包含为哪个参考点和其坐标(必须是按照时钟序排列)
 box1_points    : box1的四个顶点的坐标(必须是按照时钟序排列)
box2_points    : box2的四个顶点的坐标(必须是按照时钟序排列)
overlap_points : 两个矩形相交的点以及某个矩形的顶点落在另一个矩形内的点集合S和个数的结构体
\return   overlap_area   : 相交的面积
*/
float calcuate_boxes_overlap(RefPoint_st *box1_refpoint, RefPoint_st *box2_refpoint,float *box1_points, float *box2_points, Overlap_Points *overlap_points)
{
    if (box1_refpoint == NULL || box2_refpoint == NULL || box1_points == NULL || box2_points == NULL || overlap_points == NULL)
    {
        return 0.0f;
    }
    float overlap_area = 0.0f;
    whether_rectangles_intersec

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值