我必须找到多边形中的所有内部点。我使用以下函数来检查每个点 (x,y),但对于某些点,即使该点位于外部或位于多边形的边缘,也会返回 true。
bool IsInside(int no_vert,float *vertx, float *verty, float testx, float testy)
{
int i;
int j;
bool c=false;
for (i = 0, j = no_vert-1; i < no_vert; j = i++)
{
if ( ((verty[i]>testy) != (verty[j]>testy)) && (testx < (vertx[j]-vertx[i]) * (testy-verty[i]) / (verty[j]-verty[i]) + vertx[i]) )
{
c = true;
}
}
return c;
}