This is a bit better I guess?

This commit is contained in:
XANTRONIX Development 2023-12-30 01:22:49 -05:00
parent 305e13d49a
commit f6af45109f
2 changed files with 41 additions and 12 deletions

View file

@ -122,19 +122,10 @@ class Cluster():
rpm_max)) rpm_max))
def draw_bg(self, cr: cairo.Context): def draw_bg(self, cr: cairo.Context):
surface = cairo.RecordingSurface(cairo.Content.COLOR_ALPHA, cr.rectangle(0, 0, self.WIDTH, self.HEIGHT)
cairo.Rectangle(0, 0, 100, 88))
surface_cr = cairo.Context(surface)
pattern = HexagonPattern() pattern = HexagonPattern()
pattern.draw(surface_cr) pattern.fill(cr)
surface_cr.stroke()
cr.set_source_surface(surface, 0, 0)
cr.get_source().set_extend(cairo.EXTEND_REPEAT)
cr.rectangle(0, 0, self.WIDTH, self.HEIGHT)
cr.fill()
for gauge in self.gauges: for gauge in self.gauges:
gauge.draw_bg(cr) gauge.draw_bg(cr)

View file

@ -1,6 +1,19 @@
import cairo
from typing import Iterable
from hexagram.path import Path from hexagram.path import Path
class HexagonPattern(Path): class Pattern(Path):
pass
class HexagonPattern(Pattern):
WIDTH = 100
HEIGHT = 87
COLOR = (0.3, 0.1, 0.3)
MATRIX = (0.21213203, 0.21213203, -0.21213203, 0.21213203, 1, 1)
MATRIX_SCALE = (4, 4)
COMMANDS = [ COMMANDS = [
['M', [[23.246093, 0], ['M', [[23.246093, 0],
[ 0, 13.382812]]], [ 0, 13.382812]]],
@ -44,3 +57,28 @@ class HexagonPattern(Path):
def __init__(self): def __init__(self):
super().__init__(self.COMMANDS) super().__init__(self.COMMANDS)
def to_surface(self) -> cairo.RecordingSurface:
surface = cairo.RecordingSurface(cairo.Content.COLOR_ALPHA,
cairo.Rectangle(0, 0, self.WIDTH, self.HEIGHT))
cr = cairo.Context(surface)
cr.set_source_rgb(*self.COLOR)
self.draw(cr)
cr.stroke()
return surface
def fill(self, cr: cairo.Context):
matrix = cairo.Matrix(*self.MATRIX)
matrix.scale(*self.MATRIX_SCALE)
surface = self.to_surface()
cr.set_source_surface(surface, 0, 0)
source = cr.get_source()
source.set_matrix(matrix)
source.set_extend(cairo.EXTEND_REPEAT)
cr.fill()