#include"utils.hpp" bool panduan(std::vectorpolygons, point p) { int num = 0; for (int i = 0; i < 4; i++) { point p1 = polygons[i % 4 % 4]; point p2 = polygons[(i % 4 + 1) % 4]; if (p1.y == p2.y) continue; if (p.y < std::min(p1.y, p2.y)) continue; if (p.y >= std::max(p1.y, p2.y)) continue; if (p.y == std::min(p1.y, p2.y)) { num++; continue; } float x = (p.y - p1.y) * (p2.x - p1.x) / (p2.y - p1.y) + p1.x; //����ʽ if (x > p.x) { num++; } } //printf("�������=%d\n", num); if (num & 1) { return true;//�������� } else { return false;//�������� } }