Corners of rotated rectangle wrong

I have a problem calculating the corners of a rotated rectangle.
For the calculation I use a rotation matrix but there is somewhere a little mistake in my code.

As you can see the corners have a wrong positions but were rotated correctly.
Code:
[spoiler]


corners[0] = translatePoint(x, y);
corners[1] = translatePoint(x + width, y);
corners[2] = translatePoint(x + width, y + height);
corners[3] = translatePoint(x, y + height);


private Point translatePoint(double x, double y) {
        double xNew = (x * Math.cos(getAngleInRadians()) - y * Math.sin(getAngleInRadians()));
        double yNew = (x * Math.sin(getAngleInRadians()) + y * Math.cos(getAngleInRadians()));
        return new Point(xNew, yNew);
}

[/spoiler]
(x,y) is the left top corner of the unrotated rectangle.

Thank you for your help!

are you translating the object afterwards?

That’s not actually a rotation matrix. These are the three axis rotation matrices.

You’ll want to use the last one. You have to find matrix (dot) vector.
What you’re doing currently should work though; just make sure you’re translating after you’re rotating.

After a few tries I noticed that even if the angle is 0 the rotation is wrong.

But I have no idea why ;D

              dy = (ty * cosx) - (tz * sinex);
			dz = (tz * cosx) + (ty * sinex);
			// yrot
			mz = (dz * cosy) - (tx * siny);
			dx = (tx * cosy) + (dz * siny);
			// zrot
			mx = (dx * cosz) - (dy * sinz);
			my = (dy * cosz) + (dx * sinz);

This is the code I use when performing transformations, make sure that you use the previous variable. Note , TZ is simply the position of the vertex minus the position of the camera.

There is no error in the code you posted.
If getAngleInRadians returns 0, then translatePoint will always return the same point that was put in.
So there must be somthing wrong elsewhere in your code.

Ok I found the wrong line :stuck_out_tongue:
Thanks for your help ;D