'Scale the coordinates of the Point by multiplying by
``x`` and ``y`` after subtracting ``pt`` -- default is (0, 0) --
and then adding ``pt`` back again (i.e. ``pt`` is the point of
reference for the scaling).
See Also
rotate, translate
Examples
>>> from sympy import Point2D
>>> t = Point2D(1, 1)
>>> t.scale(2)
Point2D(2, 1)
>>> t.scale(2, 2)
Point2D(2, 2)'

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

    if pt:
        pt = Point(pt, dim=2)
        return self.translate(*(- pt).args).scale(x, y).translate(*pt.args)
    return Point((self.x * x), (self.y * y))
