integrated Path in MapDisplay
This commit is contained in:
parent
e32085c4c3
commit
c0063a5d75
@ -2,6 +2,8 @@ from typing import Optional
|
|||||||
|
|
||||||
import pygame
|
import pygame
|
||||||
|
|
||||||
|
from path import Path
|
||||||
|
|
||||||
|
|
||||||
class MapDisplay:
|
class MapDisplay:
|
||||||
PATH_WIDTH = 5
|
PATH_WIDTH = 5
|
||||||
@ -13,18 +15,23 @@ class MapDisplay:
|
|||||||
self.min_lon: float = min_lon
|
self.min_lon: float = min_lon
|
||||||
self.max_lon: float = max_lon
|
self.max_lon: float = max_lon
|
||||||
|
|
||||||
def real_to_screen(self, lat: float, lon: float) -> tuple[float, float]:
|
def real_to_screen(self, lon: float, lat: float) -> tuple[float, float]:
|
||||||
x = (lon - self.min_lon) / (self.max_lon - self.min_lon)
|
x = (lon - self.min_lon) / (self.max_lon - self.min_lon)
|
||||||
y = (lat - self.min_lat) / (self.max_lat - self.min_lat)
|
y = (lat - self.min_lat) / (self.max_lat - self.min_lat)
|
||||||
|
|
||||||
w, h = self.surf.get_size()
|
w, h = self.surf.get_size()
|
||||||
return x * w, y * h
|
return x * w, y * h
|
||||||
|
|
||||||
def draw_path(self, path: list[tuple[int, int]], colors: Optional[list[tuple[int, int, int]]]) -> None:
|
def draw_path(self, path: Path) -> None:
|
||||||
for i, (lat, lon) in enumerate(path):
|
self.draw_colored_path(path, None)
|
||||||
x, y = self.real_to_screen(lat, lon)
|
|
||||||
|
def draw_colored_path(self, path: Path, colors: Optional[list[tuple[int, int, int]]] = None) -> None:
|
||||||
|
for i, pt in enumerate(path.points):
|
||||||
|
lon = pt.x
|
||||||
|
lat = pt.y
|
||||||
|
x, y = self.real_to_screen(lon, lat)
|
||||||
col = (255, 255, 255) if colors is None else colors[i]
|
col = (255, 255, 255) if colors is None else colors[i]
|
||||||
pygame.draw.circle(self.surf, col, (x, y), self.PATH_WIDTH)
|
pygame.draw.circle(self.surf, col, (x, y), self.PATH_WIDTH)
|
||||||
|
|
||||||
def draw_segment(self, path: list[tuple[int, int]], start_i: int, end_i: int) -> None:
|
def draw_segment(self, path: Path, start_i: int, end_i: int) -> None:
|
||||||
raise NotImplementedError
|
raise NotImplementedError
|
||||||
|
Loading…
Reference in New Issue
Block a user