Sick! A repeating pattern!
This commit is contained in:
parent
069a492180
commit
305e13d49a
1 changed files with 17 additions and 6 deletions
|
@ -1,10 +1,13 @@
|
||||||
import math
|
import math
|
||||||
import cairo
|
import cairo
|
||||||
|
|
||||||
from typing import Iterable
|
from typing import Iterable, List
|
||||||
|
|
||||||
|
from hexagram.pattern import HexagonPattern
|
||||||
|
|
||||||
class Gauge():
|
class Gauge():
|
||||||
pass
|
def draw_bg(self, cr: cairo.Context):
|
||||||
|
raise NotImplementedError
|
||||||
|
|
||||||
class Dial(Gauge):
|
class Dial(Gauge):
|
||||||
__slots = 'x', 'y', 'radius',
|
__slots = 'x', 'y', 'radius',
|
||||||
|
@ -108,7 +111,7 @@ class Cluster():
|
||||||
__slots__ = 'gauges',
|
__slots__ = 'gauges',
|
||||||
|
|
||||||
def __init__(self, rpm_redline: float, rpm_max: float):
|
def __init__(self, rpm_redline: float, rpm_max: float):
|
||||||
self.gauges = list()
|
self.gauges: List[Gauge] = list()
|
||||||
|
|
||||||
for x in (self.HEIGHT / 2, self.WIDTH - self.HEIGHT / 2):
|
for x in (self.HEIGHT / 2, self.WIDTH - self.HEIGHT / 2):
|
||||||
self.gauges.append(Dial(x, self.HEIGHT / 2, self.HEIGHT / 2))
|
self.gauges.append(Dial(x, self.HEIGHT / 2, self.HEIGHT / 2))
|
||||||
|
@ -119,11 +122,19 @@ class Cluster():
|
||||||
rpm_max))
|
rpm_max))
|
||||||
|
|
||||||
def draw_bg(self, cr: cairo.Context):
|
def draw_bg(self, cr: cairo.Context):
|
||||||
cr.set_source_rgb(0, 0, 0)
|
surface = cairo.RecordingSurface(cairo.Content.COLOR_ALPHA,
|
||||||
|
cairo.Rectangle(0, 0, 100, 88))
|
||||||
|
|
||||||
|
surface_cr = cairo.Context(surface)
|
||||||
|
|
||||||
|
pattern = HexagonPattern()
|
||||||
|
pattern.draw(surface_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.rectangle(0, 0, self.WIDTH, self.HEIGHT)
|
||||||
cr.fill()
|
cr.fill()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
for gauge in self.gauges:
|
for gauge in self.gauges:
|
||||||
gauge.draw_bg(cr)
|
gauge.draw_bg(cr)
|
||||||
|
|
Loading…
Add table
Reference in a new issue