3
$\begingroup$

Suppose I have a set of points $P$ in the 2D plane.

Let $(\theta_1, p_1)$ and $(\theta_2, p_2)$ be two axis-pivot rotation, where for each $i \in \{1, 2\}$, $\theta_i$ is a rotation angle and $p_i$ the pivot point of this rotation. I would like to rotate each point of $P$ by an angle of $\theta_1$ around $p_1$, then rotate each resulting point by an angle of $\theta_2$ around $p_2$.

The resulting location of each point of $P$ can easily be computed by calculating the result of the first rotation, then the second.

However, can this be described by a single axis-pivot rotation $(\theta_3, P_3)$?

Semi-related is this question: Composition of two axis-angle rotations

However, it applies to 3D and seems more complicated than it needs to be.

$\endgroup$
5
  • $\begingroup$ I don't know the answer, but if it can be, then the pivot is a fixed point of the composition, so I would first try to find such a fixed point. $\endgroup$
    – saulspatz
    Feb 27 '18 at 19:45
  • $\begingroup$ If it was possible to describe it by a single rotation, then the involute of , e.g., a triangle would be a circle. It might be possible for infinitesimal rotations (shall think about). $\endgroup$
    – G Cab
    Feb 27 '18 at 19:54
  • $\begingroup$ $G Cab This went way over my head. Can you explain a bit, please? $\endgroup$
    – saulspatz
    Feb 27 '18 at 20:00
  • $\begingroup$ Express the rotations as homogeneous $3\times3$ matrices and multiply them together, then decompose the resulting matrix. $\endgroup$
    – amd
    Feb 27 '18 at 20:30
  • $\begingroup$ @saulspatz: sorry, my impression was wrong, because we are then to consider the end points of the involute and find a circle between them, having same center as for other couples of points. And that is possible. $\endgroup$
    – G Cab
    Feb 27 '18 at 22:29
2
$\begingroup$

A rotation $R(\theta,P)$ can be decomposed as the product of two reflections $P_r$ and $P_s$, about any two lines $r$ and $s$ intersecting at $P$ and forming an angle $\theta/2$ between them: $R(\theta,P)=P_s\circ P_r$.

If you have two rotations $R(\theta_1,P_1)$, $R(\theta_2,P_2)$, and $r$ is line $P_1P_2$, you can then choose other two lines $a$, $b$ such that $$ R(\theta_1,P_1)=P_r\circ P_{a},\quad R(\theta_2,P_2)=P_{b}\circ P_r. $$ It follows that $$ R(\theta_2,P_2)\circ R(\theta_1,P_1)=P_{b}\circ P_r\circ P_r\circ P_{a}= P_{b}\circ P_{a}. $$ If lines $a$ and $b$ intersect at $P_3$, this is indeed a rotation. If instead $a$ and $b$ are parallel, this is a translation: that happens if $\theta_1+\theta_2$ is a multiple of 360°.

$\endgroup$
3
  • $\begingroup$ Thank you for the nice answer. To be sure, is it true that the final rotation is of angle $\theta_1 + \theta_2$, with the pivot being the intersection of $a$ and $b$? $\endgroup$ Mar 1 '18 at 5:46
  • $\begingroup$ Yes, that's sure: I didn't provide many details, but I could write them down if needed. $\endgroup$ Mar 1 '18 at 13:51
  • $\begingroup$ Ah thanks, I think that's fine. From this it's not too hard to calculate the $(\theta_3, P_3)$ I was looking for. This is quite an elegant solution to the problem. $\endgroup$ Mar 1 '18 at 15:04
2
$\begingroup$

Let $R_i$ be the rotation about the point $p_i = (x_i, y_i)$ with the rotation angle $\theta_i$.

Let $R_\theta = \begin{pmatrix} \cos\theta & -\sin\theta \\ \sin\theta & \cos\theta\end{pmatrix}$ be the rotation around the origin.

$R_i$ can be expressed as

$$R_i \begin{pmatrix} x \\ y\end{pmatrix} = R_{\theta_i} \begin{pmatrix} x \\ y\end{pmatrix} + (I - R_{\theta_i})\begin{pmatrix} x_i \\ y_i\end{pmatrix} $$

where $I$ is the identity.

Now we have:

\begin{align}R_2R_1 \begin{pmatrix} x \\ y\end{pmatrix} &= R_2 \left(R_{\theta_1} \begin{pmatrix} x \\ y\end{pmatrix} + (I - R_{\theta_1})\begin{pmatrix} x_1 \\ y_1\end{pmatrix}\right)\\ &= R_{\theta_2}R_{\theta_1} \begin{pmatrix} x \\ y\end{pmatrix} + R_{\theta_2}(I - R_{\theta_1})\begin{pmatrix} x_1 \\ y_1\end{pmatrix} + (I - R_{\theta_2})\begin{pmatrix} x_2 \\ y_2\end{pmatrix}\\ &= R_{\theta_1 + \theta_2}\begin{pmatrix} x \\ y\end{pmatrix} + \underbrace{(R_{\theta_2} - R_{\theta_1 + \theta_2})\begin{pmatrix} x_1 \\ y_1\end{pmatrix} + (I - R_{\theta_2})\begin{pmatrix} x_2 \\ y_2\end{pmatrix}}_{=b} \end{align}

For this to be of the form above, the rotation angle is obviously $\theta_1 + \theta_2$, and the pivot point then has to be $(I - R_{\theta_1 + \theta_2})^{-1}b$.

The matrix $I - R_{\theta_1 + \theta_2}$ is indeed invertible when $\theta_1 + \theta_2 \ne 2k\pi$ for $k \in \mathbb{Z}$:

$$\begin{vmatrix} 1 - \cos(\theta_1 + \theta_2) & \sin(\theta_1 + \theta_2) \\ -\sin(\theta_1 + \theta_2) & 1 - \cos(\theta_1 + \theta_2)\end{vmatrix} = 2(1 - \cos(\theta_1 + \theta_2)) \ne 0$$

$\endgroup$
2
$\begingroup$

I think the answer is yes, except for an edge case. To do a pivot rotation of angle $\theta$ about some point $a,$ we translate $a$ to the origin, rotate by $\theta,$ and translate the origin back to $a.$ That is $f(x) = A(x-a)+a = Ax +(I-A)a.$ If we have some affine transformation $T(x) = Mx+c,$ where $M$ is a rotation matrix, then $T$ is a pivot rotation provided that c is of the form $(I-M)y,$ which is clearly true if $I-M$ is invertible. Calculating the determinant, we find that $I-M$ is invertible unless $M=I,$ in which case $T$ is a translation.

Now let $f(x) = Ax + (I-A)a, g(x) = Bx +(I-B)b,$ be pivot rotations, so that $A,B$ are non-identity rotations. Then $f\cdot g(x) = ABx + z$ where $z$ is a constant vector. By what has gone before, this is a pivot rotation, except in the case where $A=B^{-1},$ when it is a translation.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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