mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
25 lines
617 B
Python
25 lines
617 B
Python
import pickle
|
|
|
|
|
|
def load_poly(filename: str):
|
|
with open(filename, "rb") as f:
|
|
return pickle.load(f)
|
|
|
|
|
|
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
|