docs: 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)]