quatinterp

Интерполяция кватерниона между двумя кватернионами

Синтаксис

Описание

пример

qi=quatinterp(p,q,f,method) вычисляет интерполяцию кватерниона между двумя нормированными кватернионами p и q интервалом фракционировали f.

p и q эти два экстремальных значения, между которыми функция вычисляет кватернион.

Aerospace Toolbox использует кватернионы, которые заданы с помощью скалярного первого соглашения.

Примеры

свернуть все

Используйте интерполяцию, чтобы вычислить кватернион между двумя кватернионами p=[1.0 0 1.0 0] и q=[-1.0 0 1.0 0] использование SLERP метод. Этот пример использует quatnormalize функционируйте к первому - нормируют эти два кватерниона к pn и qn.

pn = quatnormalize([1.0 0 1.0 0])
qn = quatnormalize([-1.0 0 1.0 0])
qi = quatinterp(pn,qn,0.5,'slerp')
pn =

    0.7071         0    0.7071         0

qn =

   -0.7071         0    0.7071         0

qi =

     0     0     1     0

Входные параметры

свернуть все

Сначала нормированный кватернион, для которого можно вычислить интерполяцию в виде M-by-4 матрица, содержащая кватернионы M. Этот кватернион должен быть нормированным кватернионом.

Типы данных: double

Второй нормированный кватернион, для которого можно вычислить интерполяцию в виде M-by-4 матрица, содержащая кватернионы M. Этот кватернион должен быть нормированным кватернионом.

Типы данных: double

Часть интервала, которой можно вычислить интерполяцию кватерниона в виде M-by-1 матрица, содержащая части M (скаляр). f находится в интервале между 0 и 1. Это представляет промежуточное вращение кватерниона, который будет вычислен.

q i = (q p, q n, q f), где:

  • Если f равняется 0, q i равняется q p.

  • Если f между 0 и 1, q i равняется method.

  • Если f равняется 1, q i равняется q n.

Типы данных: double

Метод интерполяции кватерниона вычислить интерполяцию кватерниона. Эти методы имеют различные вращательные скорости, в зависимости от части интервала. Для получения дополнительной информации о частях интервала см. [1].

  • slerp

    Кватернион slerp. Сферический линейный метод интерполяции кватерниона. Этот метод является самым точным, но также и большая часть интенсивного расчета.

    Slerp(p,q,h)=p(p*q)h с h[0,1].

  • lerp

    Кватернион lerp. Линейный метод интерполяции кватерниона. Этот метод является самым быстрым, но является также наименее точным. Метод не всегда генерирует нормированный, выводят.

    LERP(p,q,h)=p(1h)+qh с h[0,1].

  • nlerp

    Нормированный метод линейной интерполяции кватерниона.

    С r=LERP(p,q,h), NLERP(p,q,h)=r|r|.

Типы данных: char

Выходные аргументы

свернуть все

Интерполяция кватерниона.

Ссылки

[1] Дамба, Эрик Б., Мартин Кох, Мартин Лиллхолм. "Кватернионы, интерполяция и анимация". Копенгагенский университет, København, Дания, 1998.

Введенный в R2016a