@@ -6,16 +6,15 @@ def __init__(self, x, y, width, height, r, *, fill=None, outline=None):
66 self ._palette = displayio .Palette (3 )
77 self ._palette .make_transparent (0 )
88
9- """
109 if fill is not None :
11- #for i in range(x0-r, x0+r): # draw the center line
12- # self._bitmap[i, r] = 2
13- # ask our helper to fill in the circle
14- self._helper(x0, y0, r, 0xF, 2, fill=True)
10+ for i in range (0 , width ): # draw the center chunk
11+ for j in range (r , height - r ): # draw the center chunk
12+ self ._bitmap [i , j ] = 2
13+ self ._helper (r , r , r , color = 2 , fill = True ,
14+ x_offset = width - 2 * r - 1 , y_offset = height - 2 * r - 1 )
1515 self ._palette [2 ] = fill
1616 else :
1717 self ._palette .make_transparent (2 )
18- """
1918
2019 if outline is not None :
2120 self ._palette [1 ] = outline
@@ -27,11 +26,11 @@ def __init__(self, x, y, width, height, r, *, fill=None, outline=None):
2726 self ._bitmap [0 , h ] = 1
2827 self ._bitmap [width - 1 , h ] = 1
2928 # draw round corners
30- self ._helper (r , r , r , x_offset = width - 2 * r - 1 , y_offset = height - 2 * r - 1 , cornerflags = 0xF )
29+ self ._helper (r , r , r , color = 1 , x_offset = width - 2 * r - 1 , y_offset = height - 2 * r - 1 )
3130
3231 super ().__init__ (self ._bitmap , pixel_shader = self ._palette , position = (x , y ))
3332
34- def _helper (self , x0 , y0 , r , * , x_offset = 0 , y_offset = 0 , cornerflags = 0xF , color = 1 , fill = False ):
33+ def _helper (self , x0 , y0 , r , * , color , x_offset = 0 , y_offset = 0 , cornerflags = 0xF , fill = False ):
3534 f = 1 - r
3635 ddF_x = 1
3736 ddF_y = - 2 * r
@@ -48,18 +47,18 @@ def _helper(self, x0, y0, r, *, x_offset=0, y_offset=0, cornerflags=0xF, color=1
4847 f += ddF_x
4948 if cornerflags & 0x8 :
5049 if fill :
51- for w in range (x0 - y , x0 + y ):
52- self ._bitmap [w , y0 + x ] = color
53- for w in range (x0 - x , x0 + x ):
54- self ._bitmap [w , y0 + y ] = color
50+ for w in range (x0 - y , x0 + y + x_offset ):
51+ self ._bitmap [w , y0 + x + y_offset ] = color
52+ for w in range (x0 - x , x0 + x + x_offset ):
53+ self ._bitmap [w , y0 + y + y_offset ] = color
5554 else :
5655 self ._bitmap [x0 - y , y0 + x + y_offset ] = color
5756 self ._bitmap [x0 - x , y0 + y + y_offset ] = color
5857 if cornerflags & 0x1 :
5958 if fill :
60- for w in range (x0 - y , x0 + y ):
59+ for w in range (x0 - y , x0 + y + x_offset ):
6160 self ._bitmap [w , y0 - x ] = color
62- for w in range (x0 - x , x0 + x ):
61+ for w in range (x0 - x , x0 + x + x_offset ):
6362 self ._bitmap [w , y0 - y ] = color
6463 else :
6564 self ._bitmap [x0 - y , y0 - x ] = color
0 commit comments