<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def rotate(self, angle):
 """ This works. Rotates the object about its center. Angle is specified in radians """


        self.angle = (self.angle + angle) % (math.pi * 2.0)

        # precalculate these parameters
        c = math.cos(angle)
        s = math.sin(angle)
        px, py = self.center

        def _rotate_point(xy):

            x, y = xy

            x = x - px
            y = y - py

            return (x * c - y * s) + px, (x * s + y * c) + py

        # calculate rotation for each point
        self.pts = [p for p in map(lambda x: _rotate_point(x), self.pts)]