exponenta event banner

quatinterp

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

Описание

пример

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

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

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

Примеры

свернуть все

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

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

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

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

Интервальная дробь, по которой вычисляется интерполяция кватернионов, заданная как M-by-1 матрица, содержащая М дробей (скаляр). f варьируется от 0 до 1. Он представляет промежуточный поворот вычисляемого кватерниона.

qi = (qp, qn, qf), где:

  • Если f равно 0, qi равно qp.

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

  • Если f равно 1, qi равно qn.

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

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

  • slerp

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

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

  • lerp

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

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

  • nlerp

    Метод линейной интерполяции нормализованного кватерниона.

    При r = LERP (p, q, h) NLERP (p, q, h) = r 'r |.

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

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

свернуть все

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

Ссылки

[1] Дамба, Эрик Б., Мартин Кох, Мартин Лиллхольм. «Кватернионы, интерполяция и анимация». Копенгагенский университет, Кёбенхавн, Дания, 1998 год.

Представлен в R2016a