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