Вращение точки кватерниона
вращает Декартовы точки с помощью кватерниона, rotationResult
= rotatepoint(quat
,cartesianPoints
)quat
. Элементы кватерниона нормированы перед использованием во вращении.
Вращение точки кватерниона вращает точку, заданную в R3 согласно заданному кватерниону:
где q является кватернионом, * представляет спряжение, и u является точкой, чтобы вращаться в виде кватерниона.
Для удобства, rotatepoint
функционируйте берет в точке в R3 и возвращает точку в R3. Учитывая вызов функции с некоторым произвольным кватернионом, q = a + b i + c j + d k и произвольная координата, [x, y, z], например,
rereferencedPoint = rotatepoint(q,[x,y,z])
rotatepoint
функция выполняет следующие операции:
Преобразует точку [x, y, z] к кватерниону:
Нормирует кватернион, q:
Применяет вращение:
Преобразует кватернион выход, vq, назад к R3