'Override GeometryEntity.scale since the radius
is not a GeometryEntity.
Examples
>>> from sympy import Circle
>>> Circle((0, 0), 1).scale(2, 2)
Circle(Point2D(0, 0), 2)
>>> Circle((0, 0), 1).scale(2, 4)
Ellipse(Point2D(0, 0), 2, 4)'

def scale(self, x=1, y=1, pt=None):

    c = self.center
    if pt:
        pt = Point(pt, dim=2)
        return self.translate(*(- pt).args).scale(x, y).translate(*pt.args)
    c = c.scale(x, y)
    (x, y) = [abs(i) for i in (x, y)]
    if (x == y):
        return self.func(c, (x * self.radius))
    h = v = self.radius
    return Ellipse(c, hradius=(h * x), vradius=(v * y))
