import pickle def load_poly(filename: str): try: with open(filename, "rb") as f: return pickle.load(f) except: return None def ray_tracing(x, y, poly): n = len(poly) inside = False xints = 0.0 p1x, p1y = poly[0] for i in range(n+1): p2x, p2y = poly[i % n] if y > min(p1y, p2y): if y <= max(p1y, p2y): if x <= max(p1x, p2x): if p1y != p2y: xints = (y-p1y)*(p2x-p1x)/(p2y-p1y)+p1x if p1x == p2x or x <= xints: inside = not inside p1x, p1y = p2x, p2y return inside