19,464
社区成员
发帖
与我相关
我的任务
分享
int GetRgnArea()
{
int area = 0;
int i,j;
CRect rect;
CPoint* m_points;
int m_nPoints;
CImageViewDoc* pDoc = GetDocument();
m_nPoints = pDoc->m_aryRectPoint.GetSize();
m_points = new CPoint[m_nPoints];
for(i = 0; i<m_nPoints ; i++)//获得所有顶点的位置
{
m_points[i] = pDoc->m_aryRectPoint[i]->m_ptPoint;
}
CRgn rgn;
rgn.CreatePolygonRgn(m_points, m_nPoints, ALTERNATE);
rgn.GetRgnBox(&rect);//获得一个包括该多边形的矩形
CPoint point;//计算矩形内的点落在多边形内的数量
for( i = rect.top ; i<rect.bottom;i++)
for( j = rect.left; j<rect.right ; j++)
{
point.x = j; point.y = i;
if(rgn.PtInRegion(point))
area ++;
}
delete[] m_points;
return area;
}