quatinterp

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

Синтаксис

qi=quatinterp(p,q,f,method)

Описание

пример

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

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

Примеры

свернуть все

Используйте интерполяцию, чтобы вычислить кватернион между двумя кватернионами 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

Метод интерполяции кватерниона вычислить интерполяцию кватерниона. Эти методы имеют различные вращательные скорости, в зависимости от части интервала. Для получения дополнительной информации о частях интервала смотрите http://web.mit.edu/2.998/www/QuaternionReport1.pdf.

  • 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

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

свернуть все

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

Введенный в R2016a