Поворот точки кватерниона
поворачивает декартовы точки с помощью кватерниона, rotationResult = rotatepoint(quat,cartesianPoints)quat. Элементы кватерниона нормализуются перед использованием при вращении.

Поворот точки кватерниона вращает точку, заданную в R3, согласно заданному кватерниону:
quq *
где q - кватернион, * - сопряжение, а u - точка вращения, заданная как кватернион.
Для удобства, rotatepoint функция принимает точку в R3 и возвращает точку в R3. Учитывая вызов функции с некоторым произвольным кватернионом, q = a + bi + cj + dk, и произвольной координатой, [x, y, z], например,
rereferencedPoint = rotatepoint(q,[x,y,z])
rotatepoint выполняет следующие операции:
Преобразует точку [x, y, z] в кватернион:
yj + zk
Нормализует кватернион, q:
c2 + d2
Применяет поворот:
quqq *
Преобразует выход кватерниона vq обратно в R3