Осталось выяснить, как из этого кватерниона получить что-нибудь более привычное - скажем, матрицу поворота. С одной стороны, вспомнив, как делается перевод в кватернионную форму для поворота на угол angle относительно оси (x,y,z), можно написать, что
q = [s,v],
angle = 2 * arccos(angle),
(x,y,z) = v / sin(angle/2),
и посчитать матрицу поворота на полученный угол относительно полученной оси. Но есть метод попроще, позволяющий получить матрицу непосредственно из кватерниона: q = [w,(x,y,z)], [ 1-2*(y*y+z*z) 2*(x*y-w*z) 2*(x*z+w*y) ] A = [ 2*(x*y+w*z) 1-2*(x*x-z*z) 2*(y*z-w*x) ] [ 2*(x*z-w*y) 2*(y*z+w*x) 1-2*(x*x-y*y) ].
Подведем итог. Для интерполяции ориентации объекта в какой-то момент времени с помощью кватернионов и сплайнов придется сделать почти то же самое, что и в случае "обычной" интерполяции чего-нибудь сплайнами (п.7.6). Различия же заключаются в следующем:
все повороты надо заранее перевести в кватернионную форму;
расчеты производных и интерполяция делаются по формулам, данным именно в этом пункте, а не по "обычным" для сплайнов;
из кватернионной формы результирующий поворот обычно надо перевести в привычную матричную.
Все остальное совпадает с планом действий при "обычной" сплайновой интерполяциии и изложено в пункте 7.6.