MFC:判断点是否在某一区域

2025-01-04 23:57:25
推荐回答(1个)
回答1:

1.判断一点是否在矩形区域内的方法: CRect rc (point_1,point_2);//构造矩形区域 调用CRect::PtInRect BOOL flag = rc.PtInRect(point_key);if (flag){点point_key在构造的矩形区域内;}else点point_key不在构造的矩形区域内; 2.判断一点是否在否个多边形区域内的方法: 用CRgn::CreatePolygonRgn 这个函数,构造一个区域 CRgn rgnA ; CPoint ptVertex[3]; ptVertex[0] = point_1; ptVertex[1] = point_2; ptVertex[2] = point_3; //这里只说明三角形的情况,其他类比即可! rgnA.CreatePolygonRgn(ptVertex , 3 , ALTERNATE); 然后再调用PtInRegion去判断 BOOL flag= rgnA.PtInRegion(point_key);if (flag){点point_key在构造的多边形区域内;}else点point_key不在构造的多边形区域内; 3.判断一点是否在椭圆形区域内CRgn rgnB;rgnB.CreateEllipticRgn(point_1.x,point_1.y,point_2.x,point_2.y); BOOL flag = rgnB.PtInRegion(point_key);if (flag){点point_key在rgnB区域内;}else点point_key不在rgnB区域内;