Создайте два кватерниона со следующей интерпретацией:
a = 45 вращений степени вокруг оси z
c =-45 вращений степени вокруг оси z
Вызовите slerp с кватернионами a и c и задайте коэффициент интерполяции 0,5.
Выход slerpB, представляет среднее вращение a и c. Чтобы проверить, преобразуйте b к Углам Эйлера в градусах.
averageRotation = 1×3
0 0 0
Коэффициент интерполяции задан как нормированное значение между 0 и 1, включительно. Коэффициент интерполяции 0 соответствует a кватернион и коэффициент интерполяции 1 соответствует c кватернион. Вызовите slerp с коэффициентами 0 и 1 подтвердить.
ans = 2×3
45.0000 0 0
-45.0000 0 0
Можно создать сглаженные пути между кватернионами путем определения массивов равномерно распределенных коэффициентов интерполяции.
Для кватернионов, которые представляют вращение только вокруг одной оси, задавая коэффициенты интерполяции как равномерно распределенные результаты в кватернионах, равномерно распределенных в Углах Эйлера. Преобразуйте interpolatedQuaternions к Углам Эйлера и проверяют, что различие между углами в пути является постоянным.
abc = 10×3
9.0000 0 0
9.0000 0 0
9.0000 0 0
9.0000 0 0
9.0000 0 0
9.0000 0 0
9.0000 0 0
9.0000 0 0
9.0000 0 0
9.0000 0 0
В качестве альтернативы можно использовать dist функция, чтобы проверить, что расстояние между интерполированными кватернионами сопоставимо. dist функция возвращает угловое расстояние в радианах; преобразуйте в степени для легкого сравнения.
def = 1×10
9.0000 9.0000 9.0000 9.0000 9.0000 9.0000 9.0000 9.0000 9.0000 9.0000