Esempio n. 1
0
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
Esempio n. 2
0
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)))