def plot_map(m, screen, scale=None, color=(0, 0, 0), width=2):
    if not scale:
        xmax, ymax = np.array([(abs(outer.real), abs(outer.imag)) for inner, outer in m]).max(axis=0)
        scale = ceil(xmax) + ceil(ymax) * 1j
    size = screen.get_width(), screen.get_height()
    from cars.utils import to_px
    points = np.array([[to_px(inner, scale, size), to_px(outer, scale, size)] for inner, outer in m])
    import pygame
    pygame.draw.polygon(screen, color, points[:, 0], width)
    pygame.draw.polygon(screen, color, points[:, 1], width)

    return scale
def plot_map(m, screen, scale=None, color=(0, 0, 0), width=2):
    if not scale:
        xmax, ymax = np.array([(abs(outer.real), abs(outer.imag))
                               for inner, outer in m]).max(axis=0)
        scale = ceil(xmax) + ceil(ymax) * 1j
    size = screen.get_width(), screen.get_height()
    from cars.utils import to_px
    points = np.array([[to_px(inner, scale, size),
                        to_px(outer, scale, size)] for inner, outer in m])
    import pygame
    pygame.draw.polygon(screen, color, points[:, 0], width)
    pygame.draw.polygon(screen, color, points[:, 1], width)

    return scale
Ejemplo n.º 3
0
    def _draw_ladar(self, sensors, state, scale):
        surface = pygame.display.get_surface().copy()
        surface.fill(white)
        surface.set_colorkey(white)
        start_pos = to_px(state.position, scale, surface.get_size())
        delta = pi / (len(sensors) - 1)
        ray = phase(state.heading) - pi / 2
        for s in sensors:
            end_pos = to_px(rect(s, ray) + state.position, scale, surface.get_size())
            pygame.draw.line(surface, (0, 255, 0), start_pos, end_pos, 2)
            ray += delta

        rectangle = surface.get_rect()
        rectangle.topleft = (0, 0)
        return surface, rectangle
Ejemplo n.º 4
0
    def _draw_ladar(self, sensors, state, scale):
        surface = pygame.display.get_surface().copy()
        surface.fill(white)
        surface.set_colorkey(white)
        start_pos = to_px(state.position, scale, surface.get_size())
        delta = pi / (len(sensors) - 1)
        ray = phase(state.heading) - pi / 2
        for s in sensors:
            end_pos = to_px(rect(s, ray) + state.position, scale, surface.get_size())
            pygame.draw.line(surface, (0, 255, 0), start_pos, end_pos, 2)
            ray += delta

        rectangle = surface.get_rect()
        rectangle.topleft = (0, 0)
        return surface, rectangle
Ejemplo n.º 5
0
 def _get_agent_image(self, original, state, scale):
     angle = phase(state.heading) * 180 / pi
     rotated = pygame.transform.rotate(original, angle)
     rectangle = rotated.get_rect()
     rectangle.center = to_px(state.position, scale, self.size)
     return rotated, rectangle
Ejemplo n.º 6
0
 def _get_agent_image(self, original, state, scale):
     angle = phase(state.heading) * 180 / pi
     rotated = pygame.transform.rotate(original, angle)
     rectangle = rotated.get_rect()
     rectangle.center = to_px(state.position, scale, self.size)
     return rotated, rectangle