Use magic constants for hodograph screen offset

This commit is contained in:
XANTRONIX 2025-03-01 22:48:18 -05:00
parent 712f96191c
commit 78ffcc0548

View file

@ -25,12 +25,15 @@ class Hodograph():
self.height = min(width, height)
self.radius = min(width, height) * 1.2
self.offset_width = 0.1
self.offset_height = 0.9
def sample_to_screen(self, wind_speed: dir, wind_dir: float) -> tuple:
r = self.radius * min(wind_speed, WIND_SPEED_MAX) / WIND_SPEED_MAX
return (
0.1 * self.width + r * math.cos(radians(wind_dir)),
0.9 * self.height + r * math.sin(radians(wind_dir))
self.offset_width * self.width + r * math.cos(radians(wind_dir)),
self.offset_height * self.height + r * math.sin(radians(wind_dir))
)
def draw_speed_lines(self, cr: cairo.Context, x, y):
@ -41,8 +44,8 @@ class Hodograph():
cr.set_dash([5, 5], 1)
for speed in range(WIND_SPEED_MIN, WIND_SPEED_MAX+1, WIND_SPEED_STEP):
cr.arc(x + 0.1 * self.width,
y + 0.9 * self.height,
cr.arc(x + self.offset_width * self.width,
y + self.offset_height * self.height,
self.radius * min(speed, WIND_SPEED_MAX) / WIND_SPEED_MAX,
0,
2*math.pi)