implemented segments
This commit is contained in:
@@ -2,25 +2,25 @@ import pygame
|
||||
|
||||
from map_display import MapDisplay
|
||||
from path import Path
|
||||
from vec import Vec2
|
||||
|
||||
|
||||
class SpeedMapDisplay(MapDisplay):
|
||||
def __init__(self,
|
||||
surf: pygame.Surface,
|
||||
min_lat: float,
|
||||
max_lat: float,
|
||||
min_lon: float,
|
||||
max_lon: float,
|
||||
min_lat: float,
|
||||
max_lat: float,
|
||||
min_speed_col: tuple[int, int, int],
|
||||
max_speed_col: tuple[int, int, int],
|
||||
segment_threshold: float):
|
||||
super().__init__(surf, min_lat, max_lat, min_lon, max_lon)
|
||||
super().__init__(surf, min_lon, max_lon, min_lat, max_lat)
|
||||
self.min_speed_col: tuple[int, int, int] = min_speed_col
|
||||
self.max_speed_col: tuple[int, int, int] = max_speed_col
|
||||
self.segment_threshold: float = segment_threshold
|
||||
|
||||
def draw_path(self, path: Path) -> None:
|
||||
colors = []
|
||||
min_speed = min(path.extra_data)
|
||||
max_speed = max(path.extra_data)
|
||||
|
||||
@@ -28,6 +28,18 @@ class SpeedMapDisplay(MapDisplay):
|
||||
|
||||
self.draw_colored_path(path, colors)
|
||||
|
||||
in_segment = False
|
||||
start_i = 0
|
||||
for i, speed in enumerate(path.extra_data):
|
||||
if speed >= self.segment_threshold:
|
||||
if not in_segment:
|
||||
in_segment = True
|
||||
start_i = i
|
||||
|
||||
elif in_segment:
|
||||
in_segment = False
|
||||
self.draw_segment(path, start_i, i)
|
||||
|
||||
def interpolate_color(self, speed: float, min_speed: float, max_speed: float) -> tuple[int, int, int]:
|
||||
r_span = self.max_speed_col[0] - self.min_speed_col[0]
|
||||
g_span = self.max_speed_col[1] - self.min_speed_col[1]
|
||||
|
||||
Reference in New Issue
Block a user