Example #1
0
def shorter_distance_corner(car_point, radial_line, corner_wall, corner, *walls):
    check_point = cross_point(radial_line, corner_wall)
    dist = distance(car_point, check_point)
    if dist <= distance(car_point, corner):
        return dist
    else:
        return shorter_distance(car_point, radial_line, *walls)
Example #2
0
        def not_in_columns_and_a_car(a_point):
            if a_point[1] > 0.:
                if distance(left_center, a_point) < column_radius:
                    return False
                elif a_point[1] > left_center[1] \
                        and left_center[0] - column_radius < a_point[0] < left_center[0] + column_radius:
                    return False
            elif a_point[1] < 0.:
                if distance(right_center, a_point) < column_radius:
                    return False
                elif a_point[1] < right_center[1] \
                        and right_center[0] - column_radius < a_point[0] < right_center[0] + column_radius:
                    return False

            if self.BODY_POSITION['x'] + self.INNER_OFFSET <= a_point[0] <= \
                    self.BODY_POSITION['x'] + self.BODY_POSITION['w'] - self.INNER_OFFSET \
                    and self.BODY_POSITION['y'] + self.INNER_OFFSET <= a_point[1] <= \
                    self.BODY_POSITION['y'] + self.BODY_POSITION['h'] - self.INNER_OFFSET:
                return False

            return True
Example #3
0
def shorter_distance(car_point, radial_line, *walls):
    points = [cross_point(radial_line, x) for x in walls]
    distances = [distance(car_point, x) for x in points]
    return list(sorted(distances, key=lambda x: abs(x)))[0]
Example #4
0
 def on_a_curve(a_point):
     return inner_radius < distance(right_center, a_point) < outer_radius
Example #5
0
 def on_a_curve(a_point):
     return distance(left_center, a_point) < outer_radius