Вращение точки кватерниона
rotationResult = rotatepoint(quat,cartesianPoints)
вращает Декартовы точки с помощью кватерниона, 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