# Rotating a circle on its axis

I have a circular shape object, which I want to rotate like a fan along it's own axis.

I can change the rotation in any direction i.e. dx, dy, dz using my transformation matrix.

The following it's the code:

 Matrix4f matrix = new Matrix4f();
matrix.setIdentity();
Matrix4f.translate(translation, matrix, matrix);
Matrix4f.rotate((float) Math.toRadians(rx), new Vector3f(1,0,0), matrix, matrix);
Matrix4f.rotate((float) Math.toRadians(ry), new Vector3f(0,1,0), matrix, matrix);
Matrix4f.rotate((float) Math.toRadians(rz), new Vector3f(0,0,1), matrix, matrix);
Matrix4f.scale(new Vector3f(scale,scale,scale), matrix, matrix);


My vertex code:

 vec4 worldPosition = transformationMatrix * vec4(position,1.0);
vec4 positionRelativeToCam = viewMatrix*worldPosition;
gl_Position = projectionMatrix *positionRelativeToCam;


But, it's not rotating along it's own axis. What am I missing here?

• "But, it's not rotating along it's own axis." What is it doing instead? – Vaillancourt Oct 1 '16 at 13:36
• @AlexandreVaillancourt It's move like flipping coin .. i.e in one rotation Head is front and other rotation Tails is front... i want simple rotation no side change... – Marvel Oct 1 '16 at 14:00
• @AlexandreVaillancourt the above one is for Y rotation , while moving along Z axis it's rotating fine but it's Y position changes – Marvel Oct 1 '16 at 14:07
• If you want it to rotate around its own axis, then how about doing a rotation around its own axis, instead of 3 rotations around the X/Y/Z axes? – user253751 Oct 3 '16 at 1:58