'Override GeometryEntity.reflect since the radius
is not a GeometryEntity.
Examples
>>> from sympy import Circle, Line
>>> Circle((0, 1), 1).reflect(Line((0, 0), (1, 1)))
Circle(Point2D(1, 0), -1)
>>> from sympy import Ellipse, Line, Point
>>> Ellipse(Point(3, 4), 1, 3).reflect(Line(Point(0, -4), Point(5, 0)))
Traceback (most recent call last):
NotImplementedError:
General Ellipse is not supported but the equation of the reflected
Ellipse is given by the zeros of: f(x, y) = (9*x/41 + 40*y/41 +
37/41)**2 + (40*x/123 - 3*y/41 - 364/123)**2 - 1
Notes
Until the general ellipse (with no axis parallel to the x-axis) is
supported a NotImplemented error is raised and the equation whose
zeros define the rotated ellipse is given.'

def reflect(self, line):

    from .util import _uniquely_named_symbol
    if (line.slope in (0, oo)):
        c = self.center
        c = c.reflect(line)
        return self.func(c, (- self.hradius), self.vradius)
    else:
        (x, y) = [_uniquely_named_symbol(name, self, line) for name in 'xy']
        expr = self.equation(x, y)
        p = Point(x, y).reflect(line)
        result = expr.subs(zip((x, y), p.args), simultaneous=True)
        raise NotImplementedError(filldedent(('General    Ellipse    is    not    supported    but    the    equation    of    the    reflected    Ellipse    is    given    by    the    zeros    of:    ' + ('f(%s,    %s)    =    %s' % (str(x), str(y), str(result))))))
