From c6f0ef5ec1a312fe776a4fef57f4331a70a82232 Mon Sep 17 00:00:00 2001 From: XANTRONIX Development Date: Fri, 29 Dec 2023 17:35:17 -0500 Subject: [PATCH] I'm on a roll! --- py/hexagram/cluster.py | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/py/hexagram/cluster.py b/py/hexagram/cluster.py index ca35bfc..9bee2dc 100644 --- a/py/hexagram/cluster.py +++ b/py/hexagram/cluster.py @@ -1,9 +1,6 @@ import math import cairo -CLUSTER_WIDTH = 1280 -CLUSTER_HEIGHT = 480 - class Gauge(): __slots = 'x', 'y', 'radius', @@ -20,16 +17,19 @@ class Gauge(): self.radius = radius def _gradient(self): - gradient = cairo.LinearGradient(0, 0, 2 * self.radius, 2 * self.radius) + gradient = cairo.LinearGradient(self.x - self.radius, + self.y - self.radius, + self.x + self.radius, + self.y + self.radius) for stop in self.BEZEL_GRADIENT_STOPS: gradient.add_color_stop_rgba(*stop) return gradient - def _draw_face(self, cr: cairo.Context): - arc = (self.radius, - self.radius, + def draw_bg(self, cr: cairo.Context): + arc = (self.x, + self.y, self.radius - self.BEZEL_WIDTH, 0, 2.0 * math.pi) @@ -44,3 +44,19 @@ class Gauge(): cr.set_line_width(self.BEZEL_WIDTH) cr.arc(*arc) cr.stroke() + +class Cluster(): + WIDTH = 1280 + HEIGHT = 480 + + __slots__ = 'gauges', + + def __init__(self): + self.gauges = list() + + for x in (self.HEIGHT / 2, self.WIDTH - self.HEIGHT / 2): + self.gauges.append(Gauge(x, self.HEIGHT / 2, self.HEIGHT / 2)) + + def draw_bg(self, cr: cairo.Context): + for gauge in self.gauges: + gauge.draw_bg(cr)