def rotate(self, angle):
        
        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)]
This works. Rotates the object about its center.
dataset/ETHPy150Open robotpy/pyfrc/lib/pyfrc/sim/field/elements.py/DrawableElement.rotate