TITLE: Find rotation that maps 5 points to another 5 points in 3D
QUESTION [1 upvotes]: Suppose I am given five points $v_1,\dots,v_5 \in \mathbb{R}^3$ in 3 dimensions, and five more points $w_1,\dots,w_5 \in \mathbb{R}^3$.  I want to find the rotation that maps $v_1 \mapsto w_1, \dots, v_5 \mapsto w_5$ (if one exists; if there are multiple, I'd like to find all of them).  How can I do this?
By rotation, I mean choosing a center point $p \in \mathbb{R}^3$, and rotation angles in 3 dimensions, that map each point $v_i$ to its corresponding point $w_i$ when $v_i$ is rotated by those angles around the center $p$.  This would be easy if the center of rotation was fixed at the origin; but when it is free to vary, the problem seems much hairier.
The number "five" is not essential.  I am conjecturing that with five points, such a rotation should be uniquely determined; but I am fine with replacing the number "five" with any other small constant.

REPLY [1 votes]: It appears this is called the "absolute orientation" problem.  See, e.g.,
Closed-form solution of absolute orientation using quaternions.  Berthold K.P. Horn.  Journal of the OPtical Society of America, vol 4 no 4, April 1987.
Least-Squares Rigid Motion Using SVD.  Olga Sorkine-Hornung and Michael Rabinovich.  Computing, vol 1 no 1, January 16, 2017.
Least-Squares Estimation of Transformation Parameters Between Two Point Patterns.  Shinji Umeyama.  IEEE Transactions on Pattern Analysis and Machine Intelligence, vol 13 no 4, April 1991.
Also, it appears that three points suffice to unique determine a rotation and translation that map $v_1,v_2,v_3$ to $w_1,w_2,w_3$.
{"set_name": "stack_exchange", "score": 1, "question_id": 3341635}