29
29
from adafruit_display_text import bitmap_label
30
30
import vectorio
31
31
from adafruit_displayio_layout .widgets .widget import Widget
32
- from adafruit_displayio_layout .widgets import rectangle_helper
32
+
33
+ # from adafruit_displayio_layout.widgets import rectangle_helper
33
34
34
35
try :
35
36
import bitmaptools
@@ -138,7 +139,7 @@ class Cartesian(Widget):
138
139
139
140
- **range**: ``xrange`` and ``yrange`` This is the range in absolute units.
140
141
For example, when using (20-90), the X axis will start at 20 finishing at 90.
141
- However the height of the graph is given by the height parameter. The scale
142
+ However, the height of the graph is given by the height parameter. The scale
142
143
is handled internal to provide a 1:1 experience when you update the graph.
143
144
144
145
@@ -269,14 +270,14 @@ def __init__(
269
270
self ._screen_palette [5 ] = self ._background_color
270
271
271
272
self ._corner_bitmap = displayio .Bitmap (10 , 10 , 5 )
272
- rectangle_helper (
273
+
274
+ bitmaptools .fill_region (
275
+ self ._corner_bitmap ,
273
276
0 ,
274
277
0 ,
275
278
self ._axes_line_thickness ,
276
279
self ._axes_line_thickness ,
277
- self ._corner_bitmap ,
278
280
2 ,
279
- self ._screen_palette ,
280
281
)
281
282
282
283
self ._corner_tilegrid = displayio .TileGrid (
@@ -336,28 +337,23 @@ def _get_font_height(font, scale: int) -> Tuple[int, int]:
336
337
return font_width , font_height
337
338
338
339
def _draw_axes (self ) -> None :
339
- # Draw x axes line
340
- rectangle_helper (
340
+
341
+ bitmaptools .fill_region (
342
+ self ._axesx_bitmap ,
341
343
0 ,
342
344
0 ,
343
- self ._axes_line_thickness ,
344
345
self .width ,
345
- self ._axesx_bitmap ,
346
+ self ._axes_line_thickness ,
346
347
2 ,
347
- self ._screen_palette ,
348
- True ,
349
348
)
350
349
351
- # Draw y axes line
352
- rectangle_helper (
350
+ bitmaptools . fill_region (
351
+ self . _axesy_bitmap ,
353
352
self ._axesy_width - self ._axes_line_thickness ,
354
353
0 ,
354
+ self ._axesy_width ,
355
355
self .height ,
356
- self ._axes_line_thickness ,
357
- self ._axesy_bitmap ,
358
356
2 ,
359
- self ._screen_palette ,
360
- True ,
361
357
)
362
358
363
359
def _draw_ticks (self ) -> None :
@@ -382,30 +378,28 @@ def _draw_ticks(self) -> None:
382
378
+ 1 ,
383
379
)
384
380
self .append (tick_text )
385
- rectangle_helper (
381
+
382
+ bitmaptools .fill_region (
383
+ self ._axesx_bitmap ,
386
384
text_dist ,
387
385
self ._axes_line_thickness ,
388
- self ._tick_line_height ,
389
- self ._tick_line_thickness ,
390
- self ._axesx_bitmap ,
386
+ text_dist + self ._tick_line_thickness ,
387
+ self ._axes_line_thickness + self ._tick_line_height ,
391
388
1 ,
392
- self ._screen_palette ,
393
- True ,
394
389
)
395
390
396
391
if self ._subticks :
397
392
if i in subticks :
398
393
# calc subtick_line_height; force min lineheigt to 1.
399
394
subtick_line_height = max (1 , self ._tick_line_height // 2 )
400
- rectangle_helper (
395
+
396
+ bitmaptools .fill_region (
397
+ self ._axesx_bitmap ,
401
398
text_dist ,
402
399
self ._axes_line_thickness ,
403
- subtick_line_height ,
400
+ text_dist + 1 ,
401
+ self ._axes_line_thickness + subtick_line_height ,
404
402
1 ,
405
- self ._axesx_bitmap ,
406
- 1 ,
407
- self ._screen_palette ,
408
- True ,
409
403
)
410
404
411
405
# Y axes ticks
@@ -425,34 +419,32 @@ def _draw_ticks(self) -> None:
425
419
y = 0 + self .height - text_dist ,
426
420
)
427
421
self .append (tick_text )
428
- rectangle_helper (
422
+
423
+ bitmaptools .fill_region (
424
+ self ._axesy_bitmap ,
429
425
self ._axesy_width
430
426
- self ._axes_line_thickness
431
427
- self ._tick_line_height
432
428
- 1 ,
433
429
text_dist ,
434
- self ._tick_line_thickness ,
435
- self ._tick_line_height ,
436
- self ._axesy_bitmap ,
430
+ self ._axesy_width - self ._axes_line_thickness - 1 ,
431
+ text_dist + self ._tick_line_thickness ,
437
432
1 ,
438
- self ._screen_palette ,
439
- True ,
440
433
)
441
434
442
435
if self ._subticks :
443
436
if i in subticks :
444
- rectangle_helper (
437
+
438
+ bitmaptools .fill_region (
439
+ self ._axesy_bitmap ,
445
440
self ._axesy_width
446
441
- self ._axes_line_thickness
447
442
- self ._tick_line_height // 2
448
443
- 1 ,
449
444
text_dist ,
445
+ self ._axesy_width - self ._axes_line_thickness - 1 ,
446
+ text_dist + 1 ,
450
447
1 ,
451
- self ._tick_line_height // 2 ,
452
- self ._axesy_bitmap ,
453
- 1 ,
454
- self ._screen_palette ,
455
- True ,
456
448
)
457
449
458
450
def _draw_pointers (self , x : int , y : int ) -> None :
0 commit comments