Woop, got marks!!!
This commit is contained in:
parent
6241463ce8
commit
b7f4fc7a22
4 changed files with 28 additions and 3 deletions
|
@ -72,7 +72,7 @@ class Cluster():
|
||||||
self.speedo = Speedo(self.HEIGHT / 2,
|
self.speedo = Speedo(self.HEIGHT / 2,
|
||||||
self.HEIGHT / 2,
|
self.HEIGHT / 2,
|
||||||
self.HEIGHT / 2,
|
self.HEIGHT / 2,
|
||||||
180.0)
|
200.0)
|
||||||
|
|
||||||
self.tacho = Tacho(self.WIDTH - self.HEIGHT / 2,
|
self.tacho = Tacho(self.WIDTH - self.HEIGHT / 2,
|
||||||
self.HEIGHT / 2,
|
self.HEIGHT / 2,
|
||||||
|
|
|
@ -43,6 +43,18 @@ class Dial(Gauge):
|
||||||
cr.show_text(text)
|
cr.show_text(text)
|
||||||
cr.stroke()
|
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):
|
def draw_bg(self, cr: cairo.Context):
|
||||||
arc = (self.x,
|
arc = (self.x,
|
||||||
self.y,
|
self.y,
|
||||||
|
|
|
@ -29,7 +29,14 @@ class Speedo(Dial):
|
||||||
cairo.FontWeight.BOLD)
|
cairo.FontWeight.BOLD)
|
||||||
|
|
||||||
cr.set_font_size(self.radius * 0.1)
|
cr.set_font_size(self.radius * 0.1)
|
||||||
|
|
||||||
cr.set_source_rgb(1, 1, 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):
|
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))
|
||||||
|
|
|
@ -35,8 +35,14 @@ class Tacho(Dial):
|
||||||
cr.set_font_size(self.radius * 0.15)
|
cr.set_font_size(self.radius * 0.15)
|
||||||
cr.set_source_rgb(1, 1, 1)
|
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):
|
for speed in range(0, int(self.max_value)+1, 1000):
|
||||||
if speed >= 7000:
|
if speed >= 7000:
|
||||||
cr.set_source_rgb(1.0, 0.1, 0.1)
|
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))
|
||||||
|
|
Loading…
Add table
Reference in a new issue