其实这个是早就写过的东西,但是突然发现有很多地方可能会用到。。那么就先存下来吧~~
bool judge(P l)
{
int k=0;
P q;
q.y=l.y;
q.x=-10000000.0;
for(int i=0;i<n;i++)
{
if(p[i].y==p[i+1].y)
continue;
if(p[i].y<p[i+1].y)
{
if(p[i].y==l.y)
continue;
}
else
{
if(p[i+1].y==l.y)
continue;
}
if((q-p[i]).det(p[i+1]-p[i])*(l-p[i]).det(p[i+1]-p[i])<=0 && (p[i]-q).det(l-q)*(p[i+1]-l).det(l-q)<=0)
k++;
}
if(k%2==0)
return 0;
return 1;
}