Взаимной однозначности не нужно, нужна сюръекция (по точке сферы и углу непрерывно находим поворот). Я пытаюсь по кватернионам как-то сделать. Точку
зафиксируем, пусть это будет кватернион
. Точка
задаётся единичным кватернионом
где
чисто мнимый кватернион нормы единица. По кватерниону надо непрерывно находить поворот, переводящий
в
(при условии
). Идеально сам поворот находить в виде кватерниона.
А почему не воспользоваться стандартной формулой
вращения на единичный кватернион? В этом случае векторный кватернион
(в обозначениях статьи из вики) будет функцией исходного векторного кватерниона
, единичного векторного кватерниона
, задающего направление оси вращения (которая должна проходить через центр сферы), и угла поворота
. Вращение будет происходить в плоскости, ортогональной оси вращения и содержащей точки A и B (эти точки будут принадлежать окружности, образованной сечением сферы плоскостью). Если значения
и
(или, эквивалентно, точки A и B) фиксированы, то предпоследнее равенство в разделе "Вращение на единичный кватернион" дает (при фиксированном
) значение угла
, соответствующее кватерниону
. Здесь вектор
равен нормализованной на 1 (произвольной) линейной комбинации векторов
и
, а сам поворот (при выбранном значении
) будет определяться функцией
, где
.