1. 程式人生 > >MFC:判斷點(POINT)是否在某一區域(CRect)

MFC:判斷點(POINT)是否在某一區域(CRect)

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區域內;