3D Rotation of a rigid body in Fixed Axes (Not Axes Rotation)

In summary, the conversation discusses the method of rotating a 3D body around an arbitrary axis with fixed principal axes. The main issue is that traditional Euler matrices rotate the principal axes instead of the body itself. The desired method is to rotate the body in a fixed, orthogonal, 3D coordinate system. The conversation includes suggestions for using rotation matrices from online sources, but the difficulty arises when rotating around multiple axes. It is eventually explained that rotations are performed counterclockwise in mathematics, and the correct order for the rotations is to first rotate around the z-axis, then the x-axis, and finally the y-axis. The confusion stemmed from attempting to rotate around the y-axis second, which had already been mapped to the x-axis after
  • #1
mushi
23
0
Dear All,

I have come across with a seemingly very simple problem but could not solve it by searching on internet and books. May be I am confused.

I want to rotate a 3D body around an arbitrary axis with fixed principal axes. The solutions I found is with Euler angles (Euler rotational matrices). But in Euler case, we are not rotating the body but rotating the principal axes, which I don't want.

In short:
In Euler case we map axes XYZ to X'Y'Z' with rotation matrices using any angle theta.
I my case I want my body position xyz to be mapped to new position x'y'z' after rotation about an arbitrary axis of angle theta. (XYZ = XYZ before and after applying rotation).

I hope I am clear to explain my question here.
Desperately waiting for help.

Thanks in advance.

Mushi
 
Physics news on Phys.org
  • #3
Hi Filip,

I am sorry that is what I don't want to do. I tried to explain in my post (may be not explained in a good way) that this method is used when you want to rotate the principal axes. I want my principal axes remind fixed.

I rather want to rotate my body (defined by Cartesian coordinates) to be rotated in a fixed, orthogonal, 3D coordinate system i.e. XYZ.

I think I am more clear now :S
 
  • #4
It's actually the same thing.

Anyway - you've seen wikipedias general rotation matrixes?
http://en.wikipedia.org/wiki/Rotation_matrix

You should be able to demonstrate the equivalence yourself by considering simple rotations of a single point (position vector) and constructing the rotation matrix for it.
 
  • #5
What you are saying is that given a point P1 (x1, y1, z1, ) after rotation by given angles (α,β,γ) about the axes you want a formula for the point P2 (x2, y2, z2, ) that P moves to ?

And what you have found is given P1 (x1, y1, z1, ) and P2 (x2, y2, z2, ) find angles (α,β,γ).
 
  • #6
Dear Simon,

You are referring to the same Wikipedia article.

If it is the same then please explain because I am not getting what I intend to.
 
  • #7
Dear Studiot,

I have points (in Cartesian coordinates) and I know the desired angle (α,β,γ) on which I want my points to be rotated. I want to get the rotated points i.e. P2 in your example.

For example,
P1(1,2,3) has to be rotated around principal axes XYZ at angles (α=10,β=20,γ=30).
What would be P2?

With traditional Euler matrices, we do not rotate P1 onto P2. We rather rotate XYZ to X'Y'Z' which is not I desire.
 
  • #8
The transformations you require are


[tex]\begin{array}{l}
\left[ {\begin{array}{*{20}{c}}
1 & 0 & 0 \\
0 & {\cos \theta } & { - \sin \theta } \\
0 & {\sin \theta } & {\cos \theta } \\
\end{array}} \right] \\
\left[ {\begin{array}{*{20}{c}}
{\cos } & 0 & {\sin \theta } \\
0 & 1 & 0 \\
{ - \sin \theta } & 0 & {\cos \theta } \\
\end{array}} \right] \\
\left[ {\begin{array}{*{20}{c}}
{\cos } & { - \sin \theta } & 0 \\
{\sin \theta } & {co{\mathop{\rm s}\nolimits} \theta } & 0 \\
0 & 0 & 1 \\
\end{array}} \right] \\
\end{array}[/tex]

The first matrix gives rotation about the x axis, the second about the y-axis and the third about the z axis.
 
  • #9
I should point out that the actual end position will depend upon the order in which you perform the rotations.

There is another matrix for the rotation about a general vector from the origin to the point (a,b,c)



[tex]\left[ {\begin{array}{*{20}{c}}
{{a^2}(1 - \cos \theta ) + \cos \theta } & {ab(1 - \cos \theta ) - csin\theta } & {ac(1 - \cos \theta ) + bsin\theta } \\
{ab(1 - \cos \theta ) + csin\theta } & {{b^2}(1 - \cos \theta ) + \cos \theta } & {bc(1 - \cos \theta ) - asin\theta } \\
{ac(1 - \cos \theta ) - bsin\theta } & {bc(1 - \cos \theta ) + asin\theta } & {{c^2}(1 - \cos \theta ) + \cos \theta } \\
\end{array}} \right][/tex]
 
Last edited:
  • #10
A rotation about successively rotated axes can be rewritten as a rotation about fixed frame axes, with the individual rotations performed in reverse.
 
  • #11
Dear Studiot,

Thanks for the reply. This is actually a further explanation of what has already been said and understood. Thanks for this anyways.

The difficulty I am facing is as follows:
I rotated my coordinates first around Z-axis, 90° CW. This mapped +ve y-coordinate onto +ve x-coordinate. Then when I tried to rotate further around Y-axis, I got some very strange values. But when I rotated my coordinates around X-axis rather than Y-axis (as a second rotation after Z), I got the right results. It happened because Y-axis had actually mapped to X-axis after first rotation.

In summary:
1st Rotation around Z-axis : Using third matrix, 90°, CW
2nd Rotation desired in Y-axis : Using second matrix (wrong results); Using first matrix (correct results)

Please explain. I am confused.
 
  • #12
Dear Muphrid,

Thanks for the reply but your reply is too complicated for me. Can you please explain.
 
  • #13
Although you have posted in the classical physics section this is really a mathematics question and in mathematics we count angles anticlockwise. So for CW angles we must add a negative sign.

Take the first matrix, rotation about the x axis.

This corresponds to the 3 equations

x2 = x1 → x1

y2 = y1 → y1cosθ - z1sinθ

z2 = z1 → y1sinθ + z1cosθ
 
  • #14
Dear Studiot,

My question was not emphasized on CW or ACW. I know that if I invert the sign of 'sin' in the matrices you mentioned, the direction will be changed.

I actually want to ask why I need to rotate in X-axis for second rotation rather than Y-axis when actually the rotation around Y-axis was desired? .Kindly read the my previous post for clarity.

I really appreciate your help for this thread.
 
  • #15
I am trying to help you understand, not do your calculations for you, so bear with me.

Firstly it is the angle θ which is negative for clockwise rotation not the trig function.

Since sin (-θ) = -sin(θ) and cos (-θ) = +cos(θ), this amounts to changing the sign of the sin entries only. But this is not always the case so beware and put the minus sign in the correct place.


Read again my entry from post #9

I should point out that the actual end position will depend upon the order in which you perform the rotations.

To see this take a book, place it in front of you on the desk. Rotate it about about each of two then three axis by 90° or 180°. do this several times with the axes of rotation in different orders.

You will see that the front cover of the book ends up differently depending upon the order you do your rotations.

Murphrid's post was to tell you what order to apply my matrices to the vector (x,y,z) compared to the desired order of rotations - that is to apply the matrix for the last rotation first.
 
Last edited:
  • #16
Dear Studiot,

Thanks for your help. Now I have almost solved my problem.

Kind Regards,
 
  • #17
That's what I like to hear.

:approve:

edit: incidentally the direction of rotation is taken standing at the origin and looking towards +∞ for a right handed set of axes.
 
Last edited:

1. What is a rigid body in the context of 3D rotation in fixed axes?

A rigid body is an object that maintains its shape and size while undergoing rotational movement in 3D space. It is a fundamental concept in mechanics and is often used to model real-world objects such as cars, airplanes, and other solid structures.

2. How is 3D rotation of a rigid body different from axes rotation?

3D rotation of a rigid body refers to the movement of the entire object in 3D space, while axes rotation only involves rotation around a specific axis. In 3D rotation, the object can rotate in any direction, while axes rotation is limited to one axis.

3. What are fixed axes in 3D rotation of a rigid body?

Fixed axes refer to a set of three perpendicular axes (x, y, and z) that are fixed in place and do not move with the rigid body. These axes serve as reference points to measure the rotational movement of the object.

4. How is 3D rotation of a rigid body calculated in fixed axes?

The 3D rotation of a rigid body in fixed axes is calculated using a mathematical concept called Euler angles, which describe how the object is rotated around each axis. These angles can be determined by measuring the rotation of the object relative to the fixed axes.

5. What are the applications of 3D rotation of a rigid body in fixed axes?

3D rotation of a rigid body in fixed axes has various applications in fields such as computer graphics, robotics, and engineering. It is used to simulate and analyze the movement of objects in 3D space and is crucial for designing and controlling complex systems.

Similar threads

Replies
2
Views
771
  • Mechanics
Replies
3
Views
111
Replies
7
Views
1K
Replies
3
Views
915
  • Special and General Relativity
Replies
5
Views
201
Replies
13
Views
2K
Replies
21
Views
2K
Replies
3
Views
953
Replies
3
Views
4K
Replies
4
Views
2K
Back
Top