Woop, got marks!!!

This commit is contained in:
XANTRONIX Development 2023-12-31 23:39:31 -05:00
parent 6241463ce8
commit b7f4fc7a22
4 changed files with 28 additions and 3 deletions

View file

@ -72,7 +72,7 @@ class Cluster():
self.speedo = Speedo(self.HEIGHT / 2,
self.HEIGHT / 2,
self.HEIGHT / 2,
180.0)
200.0)
self.tacho = Tacho(self.WIDTH - self.HEIGHT / 2,
self.HEIGHT / 2,

View file

@ -43,6 +43,18 @@ class Dial(Gauge):
cr.show_text(text)
cr.stroke()
def draw_mark(self, cr: cairo.Context, min_radius: float, max_radius: float, value: float):
angle = self.min_angle + \
((self.max_angle - self.min_angle) * (value / self.max_value)) - self.ANGLE_OFFSET
cr.move_to(self.x + (min_radius * self.radius) * math.cos(angle),
self.y + (min_radius * self.radius) * math.sin(angle))
cr.line_to(self.x + (max_radius * self.radius) * math.cos(angle),
self.y + (max_radius * self.radius) * math.sin(angle))
cr.stroke()
def draw_bg(self, cr: cairo.Context):
arc = (self.x,
self.y,

View file

@ -29,7 +29,14 @@ class Speedo(Dial):
cairo.FontWeight.BOLD)
cr.set_font_size(self.radius * 0.1)
cr.set_source_rgb(1, 1, 1)
for speed in range(0, int(self.max_value)+1, 5):
min_radius = 0.81 if speed % 10 == 0 else 0.82
cr.set_line_width(6.0 if speed % 10 == 0 else 2.0)
self.draw_mark(cr, min_radius, 0.87, speed)
for speed in range(0, int(self.max_value)+1, 20):
self.draw_number(cr, 0.75, speed, "%d" % int(speed))
self.draw_number(cr, 0.65, speed, "%d" % int(speed))

View file

@ -35,8 +35,14 @@ class Tacho(Dial):
cr.set_font_size(self.radius * 0.15)
cr.set_source_rgb(1, 1, 1)
for speed in range(0, int(self.max_value)+1, 500):
min_radius = 0.81 if speed % 1000 == 0 else 0.82
cr.set_line_width(6.0 if speed % 1000 == 0 else 2.0)
self.draw_mark(cr, min_radius, 0.87, speed)
for speed in range(0, int(self.max_value)+1, 1000):
if speed >= 7000:
cr.set_source_rgb(1.0, 0.1, 0.1)
self.draw_number(cr, 0.78, speed, "%d" % int(speed / 1000))
self.draw_number(cr, 0.65, speed, "%d" % int(speed / 1000))