I’m irrationally agitated about Scale and Rotation involving a translation and that this is not called out in the meme.
It’s not entirely inaccurate in the case of rotation, since the composition of a rotation (with angle not a multiple of 2pi) and a translation is also a rotation with a new center.
There are many ways to prove it but my preferred one is by using complex numbers. In what follows we identify 2D points and vectors with their complex representation so that we won’t have to deal with too many notations.
Let there be three points
z
,z'
andz''
, and assume that:z'
is obtained fromz
by applying a rotation of angleθ
and centeru
;z''
is obtained fromz'
by applying a translation byv
.That means that we have:
z' - u = (z - u) * exp(i * θ)
z'' = z' + v
In particular, we have:
z'' = u + v + (z - u) * exp(i * θ)
It kinda looks like a rotation is there, since we have a
exp(i * θ)
, so we’d ideally like to have the right-hand side in the above equality be in the formw + (z - w) * exp(i * θ)
.Let’s see if we can achieve that, we’ll look for
w
such that:w + (z - w) * exp(i * θ) = u + v + (z - u) * exp(i * θ)
Which after some simplifications becomes:
w * (1 - exp(i * θ)) = u * (1 - exp(i * θ)) + v
And assuming that
θ
is not a multiple of2 * pi
, we can divide both sides by1 - exp(i * θ)
and we get:w = u + v / (1 - exp(i * θ))
(from here you can easily further simplify to get the explicit 2D coordinates ofw
)So what we’ve shown is that there indeed exists a unique center
w
such thatz''
is obtained fromz
by applying a rotation of angleθ
aroundw
, ie:z'' - w = (z - w) * exp(i * θ)