Given three points in $3d$ space $\{ P_i, i = 1, 2, 3 \} $, and corresponding three points $\{ P'_i, i = 1, 2, 3 \} $ that are their images, respectively, such that $\| P_i P_j \| = \| P'_i P'_j \| , j \gt i $. I want to find the unique affine transformation that sends $P_i$ to $P'_i$, i = 1,2,3.
My approach:
Since the lengths between the points is preserved under this transformation, then it is a shift plus rotation. Therefore, we can assume that the transformation is given by
$ f(r) = R (r - P_1) + P'_1 $
where $R$ is a rotation matrix in $3d$.
Substituting the two remaining images, we get
$ P'_2 = R (P_2 - P_1) + P'_1 $
$ P'_3 = R (P_3 - P_1) + P'_1 $
So that
$ (P'_2 - P'_1) = R (P_2 - P_1) $
$ (P'_3 - P'_1) = R (P_3 - P_1) $
Since $R$ is a rotation matrix then from the properties of the cross product on vectors, it follows that
$ (P'_2 - P'_1) \times (P'_3 - P'_1) = R \bigg( (P_2 - P_1) \times (P_3 - P_1) \bigg) $
Hence, letting,
$ A = [ (P'_2 - P'_1) , (P'_3 - P'_1) , (P'_2 - P'_1) \times (P'_3 - P'_1) ] $
$ B = [ (P_2 - P_1) , (P_3 - P_1) , (P_2 - P_1) \times (P_3 - P_1) ] $
Then
$ A = R B $
Hence, the matrix $R$ can be determined uniquely and exactly as
$ R = A B^{-1} $
That's all.
I would appreciate if someone could read through the above analysis, and verify my findings.
Thank you all.