[Arc] improve bounding box edge cases
This commit is contained in:
parent
fe70d0574b
commit
ad49276345
1 changed files with 11 additions and 8 deletions
|
|
@ -362,17 +362,20 @@ class Arc(PositionableImpl, Shape):
|
|||
yn, yp = sorted(rx * sin_r * cos_a + ry * cos_r * sin_a)
|
||||
|
||||
# If our arc subtends a coordinate axis, use the extremum along that axis
|
||||
if a0 < xpt < a1 or a0 < xpt + 2 * pi < a1:
|
||||
xp = xr
|
||||
if abs(a1 - a0) >= 2 * pi:
|
||||
xn, xp, yn, yp = -xr, xr, -yr, yr
|
||||
else:
|
||||
if a0 <= xpt <= a1 or a0 <= xpt + 2 * pi <= a1:
|
||||
xp = xr
|
||||
|
||||
if a0 < xnt < a1 or a0 < xnt + 2 * pi < a1:
|
||||
xn = -xr
|
||||
if a0 <= xnt <= a1 or a0 <= xnt + 2 * pi <= a1:
|
||||
xn = -xr
|
||||
|
||||
if a0 < ypt < a1 or a0 < ypt + 2 * pi < a1:
|
||||
yp = yr
|
||||
if a0 <= ypt <= a1 or a0 <= ypt + 2 * pi <= a1:
|
||||
yp = yr
|
||||
|
||||
if a0 < ynt < a1 or a0 < ynt + 2 * pi < a1:
|
||||
yn = -yr
|
||||
if a0 <= ynt <= a1 or a0 <= ynt + 2 * pi <= a1:
|
||||
yn = -yr
|
||||
|
||||
mins.append([xn, yn])
|
||||
maxs.append([xp, yp])
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue