def get_collision_between_lines(line1, line2, precision=PRECISION): # get_line_vector_collision_point """ returns collision between 2 lines defined by a point and the direction vector """ point_1, director_1 = line1 point_2, director_2 = line2 # == if not is_same(det(director_1, director_2), 0, precision=precision): return tuple_sum( point_1, tuple_float_mult( director_1, det(points_diff(point_1, point_2), director_2) / float(det(director_1, director_2)) ), ) if is_same(det(points_diff(point_1, point_2), director_1), 0, precision=precision): return point_1 # ou point_2, c'est la meme chose : les droites sont confondues return None
def get_line_vector_collision_point(line1, line2): """ returns collision between 2 lines defined by a point and the direction vector """ (p1, v1) = line1 (p2, v2) = line2 return get_line_collision_point((p1, tuple_sum(p1, v1)), (p2, tuple_sum(p2, v2)))