320*240的窗口区域中有一堆杂乱分布(位置不定,大小不定)的矩形,其中有一些是部分相交的,现在想合并这些矩形,合并的原则是如果两矩形相交的区域同时大于两矩形各自面积的50%,下面代码中的m_rectarray是一个集合类对象,其中已经将窗口内的所有矩形RECT *指针压入。大虾们能不能帮我写一下啊?多谢!!
void CFileView::CombineRectangle()
{ CClientDC dc(this);
CBrush *pBrush=CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));
CPen pen(PS_SOLID,1,RGB(255,255,0));
dc.SelectObject(pBrush);
dc.SelectObject(&pen);
int t=m_rectarray.GetSize();
?
?
?
?}
void CFileView::CombineRectangle()
{ CClientDC dc(this);
CBrush *pBrush=CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));
CPen pen(PS_SOLID,1,RGB(255,255,0));
dc.SelectObject(pBrush);
dc.SelectObject(&pen);
int t=m_rectarray.GetSize();
?
?
?
?}
CRect::UnionRect
BOOL UnionRect( LPCRECT lpRect1, LPCRECT lpRect2 );>合并的原则是如果两矩形相交的区域同时大于两矩形各自面积的50%,
这个要算法自己处理
那就需要用到IntersectRect求两个矩形的相交矩形大小再计算这个面积是不是大于两个矩形的50%了,如果是就UnionRect。