BOOL CheckAreaOverlap(POINT *ptArray1, const int ptNum1, //区域1坐标点 坐标点数量
POINT *ptArray2, const int ptNum2) //区域2坐标点 坐标点数量
{
CRgn rgn1, rgn2;
if(rgn1.CreatePolygonRgn(ptArray1, ptNum1, WINDING)
&& rgn2.CreatePolygonRgn(ptArray2, ptNum2, WINDING))
{
CRgn rgnOvlap; rgnOvlap.CreateRectRgn(0,0,0,0);
int iRet = rgnOvlap.CombineRgn(&rgn1, &rgn2, RGN_AND);
if(iRet == COMPLEXREGION
|| iRet == SIMPLEREGION)
{
return TRUE;
}
}
return FALSE;
}
判断两个区域是否有共同的覆盖区域

本文介绍了一个用于判断两个不规则多边形区域是否相交的算法。通过使用Windows GDI+库中的CRgn类来创建区域并利用CombineRgn函数进行区域组合运算,如果运算结果为非空区域,则表明两个多边形存在交集。

240

被折叠的 条评论
为什么被折叠?



