diff --git a/masque/shapes/arc.py b/masque/shapes/arc.py index f3c9f79..f95c4f6 100644 --- a/masque/shapes/arc.py +++ b/masque/shapes/arc.py @@ -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])