enter image description here

X Y view

In case of a "2D" rigid body I can find a vector $\vec{r}_1$ that is perpendicular to the velocity $\vec{v}_1$ at point $p_1$, $\vec{r}_1\perp \vec{v}_1$ at point $p_1$, and the same for point $p_2$, $\vec{r}_2\perp \vec{v}_2$ at point $p_2$.

The intersection between $\vec{r}_1$ and $\vec{r}_2$ is the rotation point. The rotation axis goes through this point towards the $z$ direction.

For a "3D" rigid body the same calculation doesn't work because the intersection between $\vec{r}_1$ and $\vec{r}_2$ is not unique.


How can I determine the rotation point and the rotation axis for a 3D rigid body?

  • $\begingroup$ Do you know shape of object? Rotation is probably about the center-of mass. $\endgroup$
    – Natsfan
    Commented Oct 20, 2018 at 22:24
  • $\begingroup$ No I don’t know the shape of object $\endgroup$
    – Eli
    Commented Oct 21, 2018 at 7:18
  • $\begingroup$ You need three points I think. $\endgroup$ Commented Oct 28, 2019 at 20:40
  • $\begingroup$ Then the solution going to be unique? $\endgroup$
    – Eli
    Commented Oct 28, 2019 at 22:21
  • $\begingroup$ If it is a rigid body it is going to be unique. But if the measurements have errors then certain amount of fitting will be needed. remember that in 2D you already know the direction of rotation (out of plane). In 3D you need more information to get that. $\endgroup$ Commented Oct 29, 2019 at 14:52

2 Answers 2


The rotation axis of a rigid body can be uniquely identified with a simple calculation once the rotation velocity vector $\boldsymbol{\omega}$ is known.

The axis is defined by its direction and the point on the axis closest to the origin. The direction of the rotation axis is $$ \boldsymbol{\hat{z}} = \frac{ \boldsymbol{\omega}}{\| \boldsymbol{\omega} \|} \tag{1}$$

The point on the rotation axis is found from the location and velocity of any point on the rigid body, say p1.

$$ \boldsymbol{r}_{\rm rot} = \boldsymbol{r}_{\rm p1} + \frac{ \boldsymbol{\omega} \times \boldsymbol{v}_{\rm p1} }{ \| \boldsymbol{\omega} \|^2} \tag{2}$$

So the question becomes, how do we find the rotation vector $\boldsymbol{\omega}$ from the velocities of two or more points.

You can find the rotational velocity components that are perpendicular to the distance between two points with

$$ \boldsymbol{\omega} = \frac{ \boldsymbol{d} \times \boldsymbol{u} }{ \| \boldsymbol{d} \|^2 } + \lambda \,\boldsymbol{d} \tag{3} $$

where $$\begin{array}{r|l} \text{variable} & \text{description} \\ \hline \boldsymbol{d} = \boldsymbol{r}_{\rm p1} - \boldsymbol{r}_{\rm p2} & \text{relative position} \\ \boldsymbol{u} = \boldsymbol{v}_{\rm p1} - \boldsymbol{v}_{\rm p2} & \text{relative velocity} \\ \lambda & \text{arbitrary constant} \end{array} $$

The proof is found from the relationship between the point velocities

$$ \boldsymbol{v}_{\rm p1} = \boldsymbol{v}_{\rm p2} + \boldsymbol{\omega} \times ( \boldsymbol{r}_{\rm p1} - \boldsymbol{r}_{\rm p2} ) $$ $$ \boldsymbol{u} = \boldsymbol{\omega} \times \boldsymbol{d} $$

Now use (3) in the above

$$ \boldsymbol{\omega} = \frac{ \boldsymbol{d} \times (\boldsymbol{\omega} \times \boldsymbol{d}) }{ \| \boldsymbol{d} \|^2 } + \lambda \,\boldsymbol{d} $$

and use the triple vector product $(a\times(b \times c) = b (a\cdot c) - c (a\cdot b)$

$$ \boldsymbol{\omega} = \frac{ \boldsymbol{\omega} ( \boldsymbol{d}\cdot \boldsymbol{d}) - \boldsymbol{d} (\boldsymbol{d}\cdot \boldsymbol{\omega}) }{ \| \boldsymbol{d} \|^2 } + \lambda \,\boldsymbol{d} $$

and that $\boldsymbol{d}\cdot\boldsymbol{d} = \| \boldsymbol{d} \|^2 = x^2+y^2+z^2$

$$ \require{cancel} \cancel{\boldsymbol{\omega}} = \cancel{\boldsymbol{\omega}} - \boldsymbol{d} \frac{\boldsymbol{d}\cdot \boldsymbol{\omega}}{\| \boldsymbol{d} \|^2} + \lambda \boldsymbol{d} $$

$$ \lambda = \frac{\boldsymbol{d}\cdot \boldsymbol{\omega}}{\|\boldsymbol{d}\|^2} \tag{4} $$

  • $\begingroup$ I am not sure if your solution point is also the instant center of rotation? Which I am looking for $\endgroup$
    – Eli
    Commented Oct 31, 2019 at 8:30
  • $\begingroup$ In 3D there is only an instant rotation axis. Not a point. Any point along this axis will have the same velocity. Sometimes this is zero, but in general the velocity is parallel to the axis of rotation. Chasles Theorem states the general motion (of a rigid body) is that of a screw. $\endgroup$ Commented Oct 31, 2019 at 12:51

In 3D things are slightly more complicated. The answer can be obtained by gathering together several other answers here on Physics SE.

The most general rigid body motion is not a simple rotation, but a rotation combined with a translation: this is Chasles' theorem. The motion can be described as screw displacement, since the displacement can be arranged to be along the axis of rotation, and this is discussed here on Physics SE: Instantaneous Centre of Rotation and Centre of instantaneous rotation problem. So you can decompose the problem into a simple rotation about an axis, with angular velocity $\vec{\omega}$ (whose direction defines the direction of the axis of rotation), plus a translation at some velocity parallel to $\vec{\omega}$. Determining the location of the screw motion axis is equivalent to the two-dimensional problem of determining the centre of rotation.

As you will see from those pages, determining the location of the screw axis is relatively easy, once you have determined $\vec{\omega}$. To do this, I believe you need to look at the motion of three (non-collinear) points, not two. To eliminate the translational motion, you have to consider relative velocities, for example \begin{align*} \vec{v}_1-\vec{v}_3 &= \vec{\omega}\times(\vec{p}_1-\vec{p}_3) \tag{1} \\ \vec{v}_2-\vec{v}_3 &= \vec{\omega}\times(\vec{p}_2-\vec{p}_3) \tag{2} \end{align*} Just one of these equations, for example (1), is not enough to determine $\vec{\omega}$, because it says nothing about any component of $\vec{\omega}$ parallel to $\vec{p}_1-\vec{p}_3$. One way of tackling this can be found at Angular velocity by velocities of 3 particles of the solid.

  • $\begingroup$ thank you for your answer . I have to study the links that you gave. $\endgroup$
    – Eli
    Commented Oct 21, 2018 at 12:30
  • $\begingroup$ I think Chasles theorem is only talking about a single displacement, not about a continuous motion. In general for a free spinning body the axis of rotation is not constant, see nutation. $\endgroup$
    – Azzinoth
    Commented Oct 28, 2019 at 16:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.