다각형 내/외부 판정 소스
2010/06/04 10:48
폴리곤과 한 점이 있을때 그 점이 폴리곤 내부에 포함 되는지 포함되지 않는지 체크.
첫점과 끝점이 같을 필요는 없음.
bool InsidePolyCheck(GPoint pt,GPoint* poly, int polycnt)
{
int i, j;
bool c = false;
GPoint Ixy;
GPoint Jxy;
for (i = 0, j = (polycnt - 1); i < polycnt; j = i++)
{
Ixy.x = poly[i].x;
Ixy.y = poly[i].y;
Jxy.x = poly[j].x;
Jxy.y = poly[j].y;
if ((((Ixy.y <= pt.y) && (pt.y < Jxy.y)) || ((Jxy.y <= pt.y) && ( pt.y < Ixy.y))) &&
(pt.x < (Jxy.x - Ixy.x) * (pt.y - Ixy.y) / (Jxy.y - Ixy.y) + Ixy.x))
c = !c;
}
return c;
}

