29 double ans = ( (P1->x - P0->x) * (P2->y - P0->y)
30 - (P2->x - P0->x) * (P1->y - P0->y) );
31 return ans == 0.0 ? 0 : ans > 0.0 ? 1 : -1;
46 for (
int i=0; i<n; i++) {
47 if (((V[i].y <= P.y) && (V[i+1].y > P.y))
48 || ((V[i].y > P.y) && (V[i+1].y <= P.y))) {
50 double vt = (float)(P.y - V[i].y) / (V[i+1].y - V[i].y);
51 if (P.x < V[i].x + vt * (V[i+1].x - V[i].x))
70 for (
int i=0; i<n; i++) {
71 if (V[i]->y <= P->y) {
73 if (isLeft( V[i], V[i+1], P) > 0)
77 if (V[i+1]->y <= P->y)
78 if (isLeft( V[i], V[i+1], P) < 0)