Affine Transformation as Rotation

355 Views Asked by At

Im trying to do this textbook question which asks me to "express" a motion T(x) = Ax + b in the form T = Rot(P, $\theta$) (A is the rotation matrix)

I know that if I draw the transformation, the point P is chosen somewhere on the bisector between x and x', but Im not sure if its also possible to give a precise description of the point P in terms of A and b. is there a way to do this, or is the answer to this question simply to choose a point on the bisector?

2

There are 2 best solutions below

0
On

Your motion is the composition of a rotation $R$ in the plane, given by matrix $A$, with a translation $T$ by a vector $b$, which I'll rename $\vec t$ in the following. I'll also call $O$ and $\theta$ the center and angle of rotation $R$.

A rotation $R$ with center $O$ of angle $\theta$ can be obtained by combining two reflections, about any two lines passing through $O$ and forming an angle $\theta/2$ between them. A translation $T$ of vector $\vec t$ can be obtained by combining two reflections, about any two lines perpendicular to $\vec t$ and at a distance $t/2$ between them.

We can then choose reflection lines so that two of them be the same: take line $a$ passing through $O$ and perpendicular to $\vec t$, line $b$ parallel to $a$ and at a distance $\vec t/2$ from it, line $c$ which is obtained by rotating $a$ around $O$ by an angle $-\theta/2$ (see diagram). We have: $$ T=P_b\circ P_a \quad\text{and}\quad R=P_a\circ P_c, $$ so that: $$ T\circ R=P_b\circ P_a\circ P_a\circ P_c=P_b\circ P_c. $$ Hence your transformation is the same as $P_b\circ P_c$, that is a rotation of angle $\theta$, around a center $P$ which is the intersection of lines $b$ and $c$.

enter image description here

0
On

Your idea of using the bisector of $\mathbf x$ and $T(\mathbf x)$ has potential. Taking two known vectors, such as the standard basis vectors $\mathbf e_1$ and $\mathbf e_2$, you can find the center of the rotation by intersecting the two bisectors. Now, $T(\mathbf e_i)$ is just $\mathbf a_i+\mathbf b$, where $\mathbf a_i$ is the $i$th column of $A$, but after that the calculations look like they get a bit messy.

Fortunately, there’s another, simpler way to find the center of rotation $\mathbf p$: it is a fixed point of $T$, that is, it satisfies the equation $A\mathbf p+\mathbf b=\mathbf p$, or $(I-A)\mathbf p=\mathbf b$. Since $A$ is a rotation, if $A\ne I$ then $I-A$ is nonsingular, so $\mathbf p=(I-A)^{-1}\mathbf b$. (If $A=I$, we have a pure translation, which can’t be reinterpreted as a rotation about some finite point.)

The angle of this rotation about $\mathbf p$ is the same as that of the rotation represented by $A$. There are a few ways to show this, but a straightforward way is to look at $T$ as the composition of a translation $P$ to $\mathbf p$, some rotation $R$ about the origin, and then a translation back: $T = P^{-1}\circ R\circ P$. The translations are invertible, so we must have $R = P\circ T\circ P^{-1}$. Thus, for an arbitrary vector $\mathbf x$, $$R[\mathbf x] = (A(\mathbf x+\mathbf p)+\mathbf b)-\mathbf p = A\mathbf x + (A-I)\mathbf p + \mathbf b = A\mathbf x - \mathbf b + \mathbf b = A\mathbf x.$$ If you don’t happen to know the rotation angle, there are standard ways to extract it from the rotation matrix $A$.