Add option to do rectangular holes without centering them
This commit is contained in:
parent
7fd4306664
commit
eba63d9acb
|
@ -1189,19 +1189,23 @@ class Boxes:
|
||||||
|
|
||||||
@restore
|
@restore
|
||||||
@holeCol
|
@holeCol
|
||||||
def rectangularHole(self, x, y, dx, dy, r=0):
|
def rectangularHole(self, x, y, dx, dy, r=0, center_x=True, center_y=True):
|
||||||
"""
|
"""
|
||||||
Draw an rectangular hole
|
Draw a rectangular hole
|
||||||
|
|
||||||
:param x: position of the center
|
:param x: position
|
||||||
:param y: position of the center
|
:param y: position
|
||||||
:param dx: width
|
:param dx: width
|
||||||
:param dy: height
|
:param dy: height
|
||||||
:param r: (Default value = 0) radius of the corners
|
:param r: (Default value = 0) radius of the corners
|
||||||
|
:param center_x: (Default value = True) if True, x position is the center, else the start
|
||||||
|
:param center_y: (Default value = True) if True, y position is the center, else the start
|
||||||
|
|
||||||
"""
|
"""
|
||||||
r = min(r, dx/2., dy/2.)
|
r = min(r, dx/2., dy/2.)
|
||||||
self.moveTo(x, y - dy / 2.0 + self.burn, 180)
|
x_start = x if center_x else x + dx / 2.0
|
||||||
|
y_start = y - dy / 2.0 if center_y else y
|
||||||
|
self.moveTo(x_start, y_start + self.burn, 180)
|
||||||
self.edge(dx / 2.0 - r) # start with an edge to allow easier change of inner corners
|
self.edge(dx / 2.0 - r) # start with an edge to allow easier change of inner corners
|
||||||
for d in (dy, dx, dy, dx / 2.0 + r):
|
for d in (dy, dx, dy, dx / 2.0 + r):
|
||||||
self.corner(-90, r)
|
self.corner(-90, r)
|
||||||
|
|
Loading…
Reference in New Issue