[Math] Find a point position on a rotated rectangle

geometry

I am programming a $2D$ game, and I have noticed I am having trouble getting the position $(X, Y)$ of a rectangle's corner, when such rectangle is rotated. The position I am seeking is absolute in the $2D$ space.

enter image description here

As you can see, I need help finding the correct formula to find the bottom-right corner of my rectangle when it is rotated. Given the rectangle's dimensions are $100\times 50$, and it has been rotated by degrees.

Also, the $Y$ position in this language is increased the lower the point is. Basically, the top of the screen is $Y=0$ and the bottom is $Y=600$

Thank you.

Best Answer

The idea is to first translate your coordinates to a new coordinate system such that the origin is at $(0,0)$ (subtract $(0,50)$ from all your original coordinates), perform the rotation, and then translate back.

So, in this new coordinate system, the bottom of your rectangle has endpoints at $(0,0)$ and $(100,0)$. You can then use a(n anticlockwise) rotation matrix to transform the point $(100,0)$ to its rotated image:

$$\begin{align*}100\cos45^\circ-0\sin45^\circ&=50\sqrt{2}\\100\sin45^\circ+0\cos45^\circ&=50\sqrt{2}\end{align*}$$

and then undo the translation you made before rotating, which yields the point $(50\sqrt{2},50+50\sqrt{2})$ as the coordinates for the upper left corner in its new position.