fixed stretching in MapDisplay
This commit is contained in:
parent
57808d6f2f
commit
452f6ad041
@ -1,5 +1,12 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
|
<component name="CommitMessageInspectionProfile">
|
||||||
|
<profile version="1.0">
|
||||||
|
<inspection_tool class="SubjectLimit" enabled="true" level="WARNING" enabled_by_default="true">
|
||||||
|
<option name="RIGHT_MARGIN" value="50" />
|
||||||
|
</inspection_tool>
|
||||||
|
</profile>
|
||||||
|
</component>
|
||||||
<component name="VcsDirectoryMappings">
|
<component name="VcsDirectoryMappings">
|
||||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||||
</component>
|
</component>
|
||||||
|
@ -26,14 +26,26 @@ class MapDisplay(Display):
|
|||||||
self.max_lon: float = max_lon
|
self.max_lon: float = max_lon
|
||||||
self.min_lat: float = min_lat
|
self.min_lat: float = min_lat
|
||||||
self.max_lat: float = max_lat
|
self.max_lat: float = max_lat
|
||||||
|
self._precomputeDisplayValues()
|
||||||
self.cities: list[tuple[Vec2, str, str]] = cities
|
self.cities: list[tuple[Vec2, str, str]] = cities
|
||||||
|
|
||||||
def real_to_screen(self, lon: float, lat: float) -> tuple[float, float]:
|
def _precomputeDisplayValues(self) -> None:
|
||||||
x = (lon - self.min_lon) / (self.max_lon - self.min_lon)
|
width, height = self.surf.get_size()
|
||||||
y = (lat - self.min_lat) / (self.max_lat - self.min_lat)
|
self._lon_span = self.max_lon - self.min_lon
|
||||||
|
self._lat_span = self.max_lat - self.min_lat
|
||||||
|
r1 = width / self._lon_span
|
||||||
|
r2 = height / self._lat_span
|
||||||
|
|
||||||
w, h = self.surf.get_size()
|
self._r = min(r1, r2)
|
||||||
return x * w, h - y * h
|
|
||||||
|
self._ox = (width - self._lon_span * self._r) / 2
|
||||||
|
self._oy = (height - self._lat_span * self._r) / 2
|
||||||
|
|
||||||
|
def real_to_screen(self, lon: float, lat: float) -> tuple[float, float]:
|
||||||
|
x = (lon - self.min_lon) * self._r + self._ox
|
||||||
|
y = (lat - self.min_lat) * self._r + self._oy
|
||||||
|
|
||||||
|
return x, self.surf.get_height() - y
|
||||||
|
|
||||||
def draw_path(self, path: Path) -> None:
|
def draw_path(self, path: Path) -> None:
|
||||||
self.draw_colored_path(path, None)
|
self.draw_colored_path(path, None)
|
||||||
|
Loading…
Reference in New Issue
Block a user