# Rotating a rectangle (not image) in pygame

In pygame I use `pygame.draw.rect(screen, color, rectangle)` for all the rectangles in my program. I want to be able to rotate these rectangles to any angle. I have seen the following code to rotate IMAGES but my question is with RECTANGLES.

```pygame.transform.rotate(image, angle)
```

But I am working with rectangles, I don’t have an image or “surface” that I can rotate. When I try to rotate a rectangle with

```rect = pygame.draw.rect(screen, self.color, self.get_rectang())
rotatedRect = pygame.transform.rotate(rect, self.rotation)
screen.blit(rotatedRect)
```

This gives `TypeError: must be pygame.Surface, not pygame.Rect` on the line with .rotate()

My question is, how can I rotate a and display a RECTANGLE`(x,y,w,h)`, not an image, in pygame.

The linked post that this is a “potential duplicate” of is not a duplicate. One answer explains about the consequences of rotating a rectangle and the other uses code for rotating an image.

## Answer

See the second answer here: Rotating a point about another point (2D)

I think rectangles can only be horiz or vertical in their oreintation. You need to define the corners and rotate them and then draw and fill between them.

The other way is to make a class

```class myRect(pygame.Surface):
def __init__(self, parent, xpos, ypos, width, height):
super(myRect, self).__init__(width, height)
self.xpos = xpos
self.ypos = ypos
self.parent = parent

def update(self, parent):
parent.blit(self, (self.xpos, self.ypos))

def rotate(self, angle):
#(your rotation code goes here)
```

and use that instead, as then you will be able to rotate it using the transform function.