Files
racing_pyai/trigo.py
2019-10-09 17:41:32 +02:00

35 lines
1008 B
Python

#!/usr/bin/env python
import math
def angle_to_vector(angle):
angle=angle*math.pi/180
return [math.cos(angle), math.sin(angle)]
def segments_intersection(line1, line2):
xdiff = (line1[0][0] - line1[1][0], line2[0][0] - line2[1][0])
ydiff = (line1[0][1] - line1[1][1], line2[0][1] - line2[1][1])
def det(a, b):
return a[0] * b[1] - a[1] * b[0]
div = det(xdiff, ydiff)
if div == 0:
return None
d = (det(*line1), det(*line2))
x = det(d, xdiff) / div
y = det(d, ydiff) / div
if (
min(line1[0][0],line1[1][0]) <= x <= max(line1[0][0],line1[1][0])
and min(line2[0][0],line2[1][0]) <= x <= max(line2[0][0],line2[1][0])
and min(line1[0][1],line1[1][1]) <= y <= max(line1[0][1],line1[1][1])
and min(line2[0][1],line2[1][1]) <= y <= max(line2[0][1],line2[1][1])
):
return x, y
return x, y
def distance(point1, point2):
return math.hypot(point1[0] - point2[0], point1[1] - point2[1])